1
net.params [layer] .diff가 net.params [layer] .data와 같은 손실 함수의 파생이어야한다는 것을 알고 있습니다. 그러나 다음 예제와 혼동을 겪습니다. 3 계층 (ip1 , ip2, ip3) MNIST의 완전히 연결된 네트.Caffe의 net.params [layer] .diff에 실제로 저장되는 내용은 무엇입니까?
import caffe
caffe.set_mode_cpu()
import numpy as np
solver = caffe.SGDSolver('solver.prototxt')
solver.net.copy_from('iter_18000.caffemodel')
solver.net.forward()
solver.net.backward()
# the computed derivatives of ip3
# shape of ip3: (10, 300)
computed = np.dot(np.transpose(solver.net.blobs['ip3'].diff), solver.net.blobs['ip2'].data)
# actual derivatives of ip3
actual = solver.net.params['ip3'][0].diff
print np.count_nonzero(computed - actual)
결과는 2260입니다. 누군가 설명 할 수 있습니까? 많은 사람들.
왜 'count_nonzero()'를 사용하여 비교하고 있습니까? ['np.allclose()'] (https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.allclose.html)을 사용해 보셨습니까? – Shai
'False'를 반환합니다. 나는 또한 그들 사이의 정확한 차이점을 인쇄하려고 시도하고 큰 차이점을 발견했다. – NooFear
얼마나 중요합니까? – Shai