我想卡住 Inception v3 model 中除前三层之外的各层Python 3 中的 TensorFlow 还修改了这三层的权重,以便能够仅重新初始化和重新训练网络的前三个层。如果这无法在初始模型中完成,是否有任何其他网络(在 TensorFlow
中)可以完成此操作?
最佳答案
这可以在任何网络中完成。要在训练期间卡住较低层,最简单的解决方案是为优化器提供要训练的变量列表,排除较低层的变量:
train_vars = tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES,
scope="hidden[34]|outputs")
training_op = optimizer.minimize(loss, var_list=train_vars)
第一行获取隐藏层 3 和 4 以及输出层中所有可训练变量的列表。这省略了隐藏层 1 和 2 中的变量。上面的代码片段假设这些层具有变量范围 hidden1
、... hidden4
和 outputs
; Inception 模型使用不同的命名:Conv2d_2a_*
、Conv2d_2b_*
、AvgPool_1a_*
、...
关于python - 使用 Python 3 卡住 TensorFlow 中 Inception V3 的部分层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47676138/