동일한 가중치와 바이어스로 두 개의 네트워크를 만들려고합니다. 비슷한 학습 곡선이 기대됩니다. 반복 2에서 두 네트워크의 모든 얼룩은 동일하지만 (데이터 & Diff), params (가중치 & 바이어스)는 다릅니다!Pycafe- 동일한 가중치와 바이어스가있는 두 개의 네트워크 만들기
내가 여기서 잘못하고있는 것은 무엇입니까?
참고 : 네트워크에는 데이터 세트 및 드롭 아웃 레이어에 대한 임의의 셔플이 없습니다.
감사
solver1 = caffe.SGDSolver('lenet_solver.prototxt')
solver2 = caffe.SGDSolver('lenet_solver.prototxt')
solver1.step(1)
solver2.step(1)
CopySolver(solver1,solver2)
for i in range(10):
solver1.step(1)
solver2.step(1)
print solver1.net.params['ip2'][1].diff
print solver2.net.params['ip2'][1].diff
def CopySolver(SolverA,SolverB):
params = SolverA.net.params.keys()
paramsA = {pr: (SolverA.net.params[pr][0].data,SolverA.net.params[pr][1].data) for pr in params}
paramsB = {pr: (SolverB.net.params[pr][0].data,SolverB.net.params[pr][1].data) for pr in params}
for pr in params:
paramsB[pr][1][...] = paramsA [pr][1] #bias
paramsB[pr][0][...] = paramsA [pr][0] #weights
후 반복 한 후 초기 점은 동일합니다. 나는 학습 과정에서 두 네트워크의 매개 변수간에 차이가 없다고 기대한다. –