簡體   English   中英

使用Python 3在TensorFlow中凍結Inception V3中的部分層

[英]Freezing part of layers in Inception V3 in TensorFlow with Python 3

我想凍結除Python 3使用TensorFlowInception v3模型中的前三層以外的所有層,還修改這三層的權重以僅重新初始化和重新訓練網絡的前三層。 如果在初始模型中無法做到這一點,那么還有其他網絡(在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以及輸出層中所有可訓練變量的列表。 這就hidden1了隱藏層1和2中的變量。上面的代碼片段假定這些層具有變量范圍hidden1 ,..., hidden4outputs 初始模型使用不同的命名: Conv2d_2a_*Conv2d_2b_*AvgPool_1a_* ,...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM