caffe中的convnet过滤器形状为[128 64 3 3]或[out_dim,in_dim,filter_height,filter_weight]。如何将其转换为张量流形状[filter_height,filter_width,in_dim,out_dim]或[3 3 64 128],以在张量流模型中获得与caffe模型相同的结果。
我认为您可以简单地使用numpy
将数组的大小调整为您希望将其转换为的维度。然后tensorflow
像往常一样将其传递给计算图。
对于您的情况,可以使用:
tf_array = caffe_array.reshape([3, 3, 64, 128])
例子:
In [1]: zer = np.array([[[ [1, 2, 2], [3, 4, 4]], [[5, 6, 6],
[7, 8, 8]], [[0, 1, 1], [2, 1, 1] ] ]])
In [2]: zer.shape
Out[2]: (1, 3, 2, 3)
In [3]: zer
Out[3]:
array([[[[1, 2, 2],
[3, 4, 4]],
[[5, 6, 6],
[7, 8, 8]],
[[0, 1, 1],
[2, 1, 1]]]])
In [4]: rez = zer.reshape([3, 2, 3, 1])
In [5]: rez.shape
Out[5]: (3, 2, 3, 1)
In [6]: rez
array([[[[1],
[2],
[2]],
[[3],
[4],
[4]]],
[[[5],
[6],
[6]],
[[7],
[8],
[8]]],
[[[0],
[1],
[1]],
[[2],
[1],
[1]]]])
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句