【问题标题】:Transfer weights from caffe to tensorflew将权重从 caffe 转移到 tensorflow
【发布时间】:2016-12-18 21:00:53
【问题描述】:

caffe 中的卷积神经网络过滤器形状为 [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 模型获得相同的结果。 p>

【问题讨论】:

    标签: tensorflow caffe conv-neural-network pycaffe


    【解决方案1】:

    我认为您可以简单地使用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]]]])
    

    【讨论】:

      猜你喜欢
      • 2018-02-15
      • 2018-04-25
      • 2021-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-04
      相关资源
      最近更新 更多