簡體   English   中英

GradientTape 中的多個訓練變量 tensorflow

[英]Multiple training variables in GradientTape tensorflow

我在 tensorflow 中有以下可訓練變量列表:

l_vars = [l_unary.trainable_variables, l_regularization.trainable_variables]

像這樣傳遞到磁帶中:

    grad_l_model = l_tape.gradient(tf.constant(l_loss), l_vars)

但是,這給出了錯誤:

AttributeError: 'list' object has no attribute '_in_graph_mode'

用 tf.Variable 包裝 l_vars 時,出現錯誤:

tensorflow.python.framework.errors_impl.InvalidArgumentError: Shapes of all inputs must match: values[0].shape = [5,5,3,32] != values[1].shape = [32] [Op:Pack] name: initial_value
tf.keras.layers.concatenate([l_unary.trainable_variables, l_regularization.trainable_variables], 0)

給出:

ValueError:應在至少包含 2 個輸入的列表上調用Concatenate

如何一起訓練多個 model 變量和 tensorflow?

請注意,您的l_vars不是一個列表,而是一個列表列表,因為每個trainable_variables屬性本身已經是一個列表。 你可以簡單地使用

l_vars = l_unary.trainable_variables + l_regularization.trainable_variables

將兩個列表連接成一個大列表。

暫無
暫無

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

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