我试图复制我的模型的结果。但是每次运行它,结果都不一样(即使重新启动google colab的运行时)。这是模型
# set random seed
tf.random.set_seed(42)
# 1. Create the model
model_1 = tf.keras.models.Sequential([
tf.keras.layers.Dense(1, input_shape=[1])
])
# 2. Compile the model
model_1.compile(loss=tf.keras.losses.mae,
optimizer=tf.keras.optimizers.SGD(),
metrics=["mae"])
# 3. Fit the model
model_1.fit(X_train, y_train, epochs=100)
X_train
和y_train
是两个Tensor,每个Tensor都有shape=(40,)
和dtype=int32
# 4. make a prediction
y_pred = model.predict(X_test)
# 5. mean absolute error
mae = tf.metrics.mean_absolute_error(y_true=y_test,
y_pred=tf.squeeze(tf.constant(y_pred)))
X_test
和y_test
是两个Tensor,每个Tensor都有shape=(10,)
和dtype=int32
现在,每次运行上面的代码时,我都会得到mae
的不同值,例如:8.63,21.26,14.96,14.93,14.84,...
我期望得到相同的运行,因为我在构建和训练模型之前设置了随机种子。
如何准确再现模特的表现?
1条答案
按热度按时间vojdkbi01#
由于您正在使用Keras,因此可能会有不同的种子。这是记录here。
Keras有一个功能来设置这些种子:
也许你还需要: