[英]Tensor flow transfer learning
如果我們使用預訓練網絡進行遷移學習,那么sess.run(tf.global_variables_initializer())
是否還初始化預訓練權重?
如果我不使用它,那么我會收到這樣的錯誤-
FailedPreconditionError:Attempting to use uninitialized value train/beta2_power_1
我正在使用名為“new_Adam”的新 Adam 優化器
train_step = tf.train.AdamOptimizer(1e-4, name="new_Adam").minimize(cross_entropy)
我的舊模型已經有一個 Adam 節點,並且不允許我使用相同的名稱重新定義。
實際上我擔心的是我想做轉移學習,我不確定sess.run(tf.global_variables_initializer())
是否改變了我訓練的權重。 我怎樣才能進行正確的遷移學習?
您可以通過導入您的權重模型來初始化您的預訓練模型。 例如
base_model = keras.applications.MobileNetV2(input_shape=in_img ,include_top=False, weights='mobilenetv2.h5')
然后應用你自己的網絡
out_class=10
x=base_model.output
x=GlobalAveragePooling2D()(x)
x=Dense(1024,activation='relu')(x)
x=Dense(1024,activation='relu')(x)
x=Dense(512,activation='relu')(x)
preds=Dense(out_class,activation='softmax')(x)
model=Model(inputs=base_model.input,outputs=preds)
out_class 是分類數
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.