Tensorflow 2.0 keras配合覆盖了;“培训”;调用函数中的参数

Tensorflow 2.0 keras配合覆盖了;“培训”;调用函数中的参数,tensorflow,tensorflow2.0,Tensorflow,Tensorflow2.0,使用tensorflow 2.0创建模型时,我会得到两种不同的行为,这取决于我如何向前传球: 1) 如果我使用模型(X)向前传球,那么就可以了,call方法中的“training”参数工作正常 vs 2) 如果我使用model.fit(X,y)来运行模型,那么“training”参数似乎会被覆盖并设置为None,而不管其默认值是True还是False 有人知道为什么会这样吗?例如,这意味着我无法设置模型,因此只有当“训练”设置为“真”时才会发生辍学 !pip install tensorflow

使用tensorflow 2.0创建模型时,我会得到两种不同的行为,这取决于我如何向前传球:

1) 如果我使用模型(X)向前传球,那么就可以了,call方法中的“training”参数工作正常

vs

2) 如果我使用model.fit(X,y)来运行模型,那么“training”参数似乎会被覆盖并设置为None,而不管其默认值是True还是False

有人知道为什么会这样吗?例如,这意味着我无法设置模型,因此只有当“训练”设置为“真”时才会发生辍学

!pip install tensorflow-gpu==2.0.0-alpha0
import tensorflow as tf
from tensorflow.keras.layers import Dense, Flatten, Conv2D
from tensorflow.keras import Model

X = np.random.random((250, 5))
y = X[:, 0] > 0 * 1.0

class MyModel(Model):

  def __init__(self):
    super(MyModel, self).__init__()
    self.dense1 = tf.keras.layers.Dense(4, activation=tf.nn.relu)
    self.dense2 = tf.keras.layers.Dense(5, activation=tf.nn.softmax)
    self.dropout = tf.keras.layers.Dropout(0.5)

  def call(self, inputs, training=True):
    print("Training ", training)
    x = self.dense1(inputs)
    if training:
      x = self.dropout(x, training=training)
    return self.dense2(x)

model = MyModel()
然后按预期打印出训练真值

model(X)    # prints out: Training True
但这会打印出“无训练”

model.compile(optimizer='adam', loss='mse')        
model.fit(X, y, epochs=1)   # prints out: Training None
这是一个bug:

tf.keras.Model.call()的训练值在 tf.keras.Model.fit()。(tf2.0.0-0)

这是一个错误:

tf.keras.Model.call()的训练值在 tf.keras.Model.fit()。(tf2.0.0-0)


新发布的TF2.0解决了这一问题

请更换
!pip安装tensorflow gpu==2.0.0-alpha0
!在上述代码中,pip安装tensorflow gpu==2.3
。请检查一下电话号码。谢谢

输出如下所示

model.compile(optimizer='adam', loss='mse')        
model.fit(X, y, epochs=1)   # prints out: Training None

Training  True
Training  True
8/8 [==============================] - 0s 1ms/step - loss: 0.6448
<tensorflow.python.keras.callbacks.History at 0x7f1f5961edd8>
model.compile(优化器='adam',loss='mse')
model.fit(X,y,epochs=1)#打印:无训练
训练真实
训练真实
8/8[====================================]-0s 1ms/步-损耗:0.6448

新发布的TF2.0解决了这一问题

请更换
!pip安装tensorflow gpu==2.0.0-alpha0
!在上述代码中,pip安装tensorflow gpu==2.3
。请检查一下电话号码。谢谢

输出如下所示

model.compile(optimizer='adam', loss='mse')        
model.fit(X, y, epochs=1)   # prints out: Training None

Training  True
Training  True
8/8 [==============================] - 0s 1ms/step - loss: 0.6448
<tensorflow.python.keras.callbacks.History at 0x7f1f5961edd8>
model.compile(优化器='adam',loss='mse')
model.fit(X,y,epochs=1)#打印:无训练
训练真实
训练真实
8/8[====================================]-0s 1ms/步-损耗:0.6448