tf.keras.Model.predict 和调用 return 不同的结果
tf.keras.Model.predict and call return different result
tf.keras.Model.predict
并调用 return 不同的结果
import tensorflow as tf
import numpy as np
tf.set
ipts = tf.keras.Input([2])
x = tf.keras.layers.Dense(10)(ipts)
x = tf.keras.layers.Dropout(0.5)(x)
x = tf.keras.layers.Dense(3)(x)
model = tf.keras.Model(ipts, x)
model.summary()
sess = tf.Session()
sess.run(tf.global_variables_initializer())
y_train = model(tf.ones((2,2)),training=True)
y_test = model(tf.ones((2,2)),training=False)
sess.run(y_train)
sess.run(y_test)
model.predict(np.array([[1.,1.],[1.,1.]]))
sess.run(y_test)
应该与 model.predict(np.array([[1.,1.],[1.,1.]]))
相同,但事实是它们不同。为什么?
您需要使用 K.set_session(sess)
将会话注册为您的 Keras 会话。然后 sess.run(y_test)
给出与 model.predict(np.array([[1.,1.],[1.,1.]]))
.
相同的结果
tf.keras.Model.predict
并调用 return 不同的结果
import tensorflow as tf
import numpy as np
tf.set
ipts = tf.keras.Input([2])
x = tf.keras.layers.Dense(10)(ipts)
x = tf.keras.layers.Dropout(0.5)(x)
x = tf.keras.layers.Dense(3)(x)
model = tf.keras.Model(ipts, x)
model.summary()
sess = tf.Session()
sess.run(tf.global_variables_initializer())
y_train = model(tf.ones((2,2)),training=True)
y_test = model(tf.ones((2,2)),training=False)
sess.run(y_train)
sess.run(y_test)
model.predict(np.array([[1.,1.],[1.,1.]]))
sess.run(y_test)
应该与 model.predict(np.array([[1.,1.],[1.,1.]]))
相同,但事实是它们不同。为什么?
您需要使用 K.set_session(sess)
将会话注册为您的 Keras 会话。然后 sess.run(y_test)
给出与 model.predict(np.array([[1.,1.],[1.,1.]]))
.