GradientTape张量流中的多个训练变量

时间:2020-08-19 06:31:24

标签: python tensorflow

我在tensorflow中有以下trainable_variables列表:

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

如何使用tensorflow一起训练多个模型变量?

1 个答案:

答案 0 :(得分:0)

请注意,您的componentDidMount不是列表,而是列表列表,因为每个l_vars属性本身已经是一个列表。您可以简单地使用

trainable_variables

将两个列表连接成一个大列表。

相关问题