2016-11-08 3 views
0

저는 Matlab을 사용하여 3dv 길쌈 레이어에 대한 사전 훈련 된 가중치를 가지고 있습니다. 가중치는 차원 (512,4,4,4,160)을 갖는 5d 텐서입니다. [out_channels, filter_depth, filter_hepth, filter_width, in_channels]사전 훈련 된 가중치를 어떻게 변형하여 3 차원 컨볼 루션 신경망에 입력합니까?

이제 tensorflow의 tf.nn.conv3d에서 미세 조정을위한 초기 가중치로 입력하고 싶습니다. 나는 3 차원 길쌈 신경 네트워크에 허용되는 가중치의 모양이 (4,4,4,160,512). [filter_depth, filter_height, filter_width, in_channels, out_channels]이어야한다고 봅니다. tf.Variable(). reshape (4,4,4,160,512)를 사용할 수 있습니까? 그러나 나는 단지 모양을 사용하면 올바른 무게가 아닌 것 같아요.

답변

0

tf.transpose 축 동작을 재정렬 할 수

https://www.tensorflow.org/versions/r0.11/api_docs/python/array_ops.html#transpose는 텐서 input 초기 형상 tf.transpose(input, perm=[4,1,2,3,0]) 출력 텐서 형상 (160,4,4,4,512)있을 것이다 (512,4,4,4,160) 것이어야한다.

일부 축 또는 축을 따라 가중치를 역 분개해야 할 수도 있습니다. 텐서 흐름에서 회선은 교차 상관으로 구현됩니다. https://www.tensorflow.org/versions/r0.11/api_docs/python/nn.html#convolution