我是 Tensorflow 和 Keras 的新手。首先,我遵循了https://www.tensorflow.org/tutorials/quickstart/advanced教程。我现在正在对其进行调整,以在 CIFAR10 而不是 MNIST 数据集上进行训练。我重新创建了这个模型https://keras.io/examples/cifar10_cnn/并且我尝试在我自己的代码库中运行它。
从逻辑上讲,如果模型、批量大小和优化器都相同,那么两者的性能应该相同,但事实并非如此。我想可能是我在准备数据时犯了错误。因此,我将 model.fit 函数从 keras 代码复制到我的脚本中,它的性能仍然更好。使用 .fit 在 25 个 epoch 内获得了大约 75% 的准确率,而使用手动方法则需要大约 60 个 epoch。通过 .fit,我还获得了稍微更好的最大准确度。
我想知道的是: .fit 是否在幕后做一些优化训练的事情?我需要在代码中添加什么才能获得相同的性能?我做错了什么吗?
谢谢你的时间。
主要代码:
import tensorflow as tf
from tensorflow import keras
import msvcrt
from Plotter import Plotter
#########################Configuration Settings#############################
BatchSize = 32
ModelName = "CifarModel"
############################################################################
(x_train, y_train), (x_test, y_test) = tf.keras.datasets.cifar10.load_data()
print("x_train",x_train.shape)
print("y_train",y_train.shape)
print("x_test",x_test.shape)
print("y_test",y_test.shape)
x_train, x_test = x_train / 255.0, x_test / 255.0
# Convert class …Run Code Online (Sandbox Code Playgroud)