Я пытаюсь использовать производную softmax https://medium.com/@aerinykim/how-to-implement-the-softmax-derivative-independently-from-any-loss-function-ae6d44363a9d
Я использую эту функцию:
def softmax_grad(softmax):
s = softmax.reshape(-1,1)
return np.diagflat(s) - np.dot(s, s.T)
и когда я звоню, я получаю эту ошибку
<ipython-input-72-4aed1c61658a> in softmax_prime(x)
6
7 s = x.reshape(-1,1)
----> 8 return np.diagflat(s) - np.dot(s, s.T)
D:\anaconda\lib\site-packages\numpy\lib\twodim_base.py in diagflat(v, k)
306 s = len(v)
307 n = s + abs(k)
--> 308 res = zeros((n, n), v.dtype)
309 if (k >= 0):
310 i = arange(0, n-k)
MemoryError:
это из-за размера? массив, который я передаю в качестве параметра, имеет размер (100, 60000), а скалярное произведение находится между фигурами (600000, 1)
(1, 600000)