在TensorFlow中,你可以在不同的函数中分别进行训练和测试。以下是一个简单的例子,展示了如何在两个不同的函数中进行训练和测试:
import tensorflow as tf
from tensorflow.keras import layers, models
# 准备数据
(x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
x_train = x_train[..., tf.newaxis]
x_test = x_test[..., tf.newaxis]
train_ds = tf.data.Dataset.from_tensor_slices((x_train, y_train)).shuffle(10000).batch(32)
test_ds = tf.data.Dataset.from_tensor_slices((x_test, y_test)).batch(32)
# 创建模型
model = models.Sequential([
layers.Conv2D(32, 3, activation='relu', input_shape=(28, 28, 1)),
layers.MaxPooling2D(),
layers.Conv2D(64, 3, activation='relu'),
layers.MaxPooling2D(),
layers.Flatten(),
layers.Dense(128, activation='relu'),
layers.Dense(10, activation='softmax')
])
# 编译模型
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
def train_model(model, train_data, epochs):
model.fit(train_data, epochs=epochs)
print("训练完成")
def test_model(model, test_data):
loss, accuracy = model.evaluate(test_data)
print(f"测试损失: {loss}, 测试准确率: {accuracy}")
# 训练模型
train_model(model, train_ds, epochs=5)
# 测试模型
test_model(model, test_ds)
在这个例子中,我们首先导入了所需的库,并准备了MNIST数据集。然后,我们创建了一个简单的卷积神经网络模型,并对其进行了编译。
接下来,我们定义了两个函数:train_model
和 test_model
。train_model
函数接受模型、训练数据和训练轮数作为参数,并使用 fit
方法进行训练。test_model
函数接受模型和测试数据作为参数,并使用 evaluate
方法计算损失和准确率。
最后,我们调用这两个函数来分别进行训练和测试。
领取专属 10元无门槛券
手把手带您无忧上云