0
所以,我有一个架构,其中比方说,我有几层,让我们通过ARC1表示它:A1->A2->A3->A4->Loss1
。我用一个损失函数来训练这个架构:Loss1。Tensorflow:微调与附加层的模型,关键不是发现错误
我有一个新的架构ARC2:A1->A2->A3->A4->A5->A6->Loss2
,其中A1至A4在这两个层具有相同的名称和A5和A6是新的层次。我想以较低的学习速度慢训练整体架构ARC2但想从以前的培训架构ARC1恢复A1 to A4
。我试着在tensorflow实施,但我得到的错误:
tensorflow/core/framework/op_kernel.cc:1152] Not found: Key Arc/new_layers/A5_weights not found in checkpoint
[[Node: save/RestoreV2_38 = RestoreV2[dtypes=[DT_FLOAT], _device="/job:localhost/replica:0/task:0/cpu:0"](_recv_save/Const_0, save/RestoreV2_38/tensor_names, save/RestoreV2_38/shape_and_slices)]]
这是事实,对应于新层的权重是不老的检查点,但因为这是一个标准的技术,这将是一个办法做到这个?据我所知,冻结网络将不解决这个问题,因为我想的梯度传播完成的一路A1(同时具有更低的学习率后学习)。
这是培养新的SOFTMAX层的标准技术,但如果你有2个或多个新的完全连接层或其他层,它应该是真的有问题?