gpt4 book ai didi

machine-learning - 什么代表 Keras 中训练结果的损失或准确性

转载 作者:行者123 更新时间:2023-11-30 09:08:59 25 4
gpt4 key购买 nike

我有两个类,每个类有 3 张图像。我在 Keras 中尝试了这段代码。

trainingDataGenerator = ImageDataGenerator()

trainGenerator = trainingDataGenerator.flow_from_directory(
trainingDataDir,
target_size=(28, 28),
batch_size = 1,
seed=7,
class_mode='binary',
)

FilterSize = (3,3)
inputShape = (imageWidth, imageHeight,3)

model = Sequential()
model.add (Conv2D(32, FilterSize, input_shape= inputShape))
model.add (Activation('relu'))
model.add ( MaxPooling2D(pool_size=(2,2)))

model.add(Flatten())
model.add(Activation('relu'))
model.add(Dense(1))
model.add(Activation('sigmoid'))

model.compile(loss='binary_crossentropy',
optimizer = 'rmsprop',
metrics=['accuracy'])


model.fit_generator(
trainGenerator,
steps_per_epoch=3,
epochs=epochs)

我的输出:

当我训练这个模型时,我得到以下输出:

Using TensorFlow backend.
Found 2 images belonging to 2 classes.
Epoch 1/1
3/3 [==============================] - 0s - loss: 5.3142 - acc: 0.6667

我的问题:

我想知道它是如何确定损失和准确性的以及依据是什么? (即:损失:5.3142 - acc:0.6667)。我没有给出任何验证图像来验证模型以找到准确性和损失。 这种损失和准确性是否与输入图像本身有关?

简而言之,我们可以这样说:“该模型的准确度为 %,在没有验证图像的情况下损失了 %”?

最佳答案

训练损失和准确性不是通过与验证数据进行比较来计算的,而是通过将样本 x 的神经网络的预测与您在 中提供的该样本的标签 y 进行比较来计算的>训练集。

您初始化神经网络并(通常)将所有权重设置为具有一定偏差的随机值。之后,您将训练数据集的特征输入到您的网络中,并让它“猜测”结果,即您拥有的标签(如果您像您的案例一样进行监督学习)。

然后,您的框架将该猜测与实际标签进行比较,并计算误差,然后通过网络反向传播该误差,从而调整和改进所有权重。

无需任何验证数据即可完美运行。

验证数据让模型根据看不见的数据进行预测,让您了解模型的质量(损失、准确性等)。这样您就可以获得所谓的验证损失/准确性,并利用此信息调整您的超参数。

在最后一步中,您可以使用测试数据来评估训练的最终质量。

关于machine-learning - 什么代表 Keras 中训练结果的损失或准确性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45117116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com