【发布时间】:2020-02-03 21:18:18
【问题描述】:
我在 tf2 中创建了一个简单的模型,它将输入“a”乘以变量“b”(初始化为 1)并返回输出“c”。然后我尝试在简单的数据集 a=1, c=5 上对其进行训练。我希望它能够学习 b=5。
import tensorflow as tf
from tensorflow.keras.models import Model
a = Input(shape=(1,))
b = tf.Variable(1., trainable=True)
c = a*b
model = Model(a,c)
loss = tf.keras.losses.MeanAbsoluteError()
model.compile(optimizer='adam', loss=loss)
model.fit([1.],[5.],batch_size=1, epochs=1)
但是,tf2 并不认为变量“b”是可训练的。摘要显示没有可训练的参数。
Model: "model"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
input_1 (InputLayer) [(None, 1)] 0
_________________________________________________________________
tf_op_layer_mul (TensorFlowO [(None, 1)] 0
=================================================================
Total params: 0
Trainable params: 0
Non-trainable params: 0
_________________________________________________________________
为什么变量“b”没有训练?
【问题讨论】:
标签: python tensorflow keras tensorflow2.0 tf.keras