gpt4 book ai didi

deep-learning - 为什么我的准确率从一开始训练就很高?

转载 作者:行者123 更新时间:2023-12-05 00:14:51 36 4
gpt4 key购买 nike

我正在训练一个神经网络来识别.png图片上的一些属性,当我开始训练时得到的是这样的,并且它一直在增加直到epoch结束:

32/4817 [..............................] - ETA: 167s - loss: 0.6756 - acc: 0.5
64/4817 [..............................] - ETA: 152s - loss: 0.6214 - acc: 0.7
96/4817 [..............................] - ETA: 145s - loss: 0.6169 - acc: 0.7
128/4817 [.............................] - ETA: 142s - loss: 0.5972 - acc: 0.7
160/4817 [.............................] - ETA: 140s - loss: 0.5734 - acc: 0.7
192/4817 [>............................] - ETA: 138s - loss: 0.5604 - acc: 0.7
224/4817 [>............................] - ETA: 137s - loss: 0.5427 - acc: 0.7
256/4817 [>............................] - ETA: 135s - loss: 0.5160 - acc: 0.7
288/4817 [>............................] - ETA: 134s - loss: 0.5492 - acc: 0.7
320/4817 [>............................] - ETA: 133s - loss: 0.5574 - acc: 0.7
352/4817 [=>...........................] - ETA: 131s - loss: 0.5559 - acc: 0.7
384/4817 [=>...........................] - ETA: 129s - loss: 0.5550 - acc: 0.7
416/4817 [=>...........................] - ETA: 128s - loss: 0.5504 - acc: 0.7
448/4817 [=>...........................] - ETA: 127s - loss: 0.5417 - acc: 0.7
480/4817 [=>...........................] - ETA: 126s - loss: 0.5425 - acc: 0.7

我的问题是为什么起始准确率这么高?我想它应该在 0.1 左右,然后随着学习而增加。

此外,最后我得到:

('Test loss:', 0.42451223436727564)
('Test accuracy:', 0.82572614112830256)

测试损失太大了吗?

这是我的网络:

input_shape = x_train[0].shape
print(input_shape)
model = Sequential()

stoplearn = keras.callbacks.EarlyStopping(monitor='val_loss', min_delta=0,
patience=0, verbose=0, mode='auto')

model.add(Conv2D(32, kernel_size=(3, 3),
activation='relu',
input_shape=input_shape))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(2, activation='softmax'))

model.compile(loss=keras.losses.categorical_crossentropy,
optimizer=keras.optimizers.Adadelta(),
metrics=['accuracy'])

model.fit(x_train, y_train,
batch_size=batch_size,
epochs=20,
verbose=1,
validation_data=(x_test, y_test),
callbacks=[stoplearn])
score = model.evaluate(x_test, y_test, verbose=0)
print('Test loss:', score[0])
print('Test accuracy:', score[1])

它是使用 Keras 用 Python 编写的。

最佳答案

您将数据分为两类(因为您的输出层大小为 2),因此 0.5 的准确度不高。实际上,这意味着您的网络行为是随机的,这正是您一开始所期望的。关于损失,没有绝对的答案。您的测试精度似乎还不错,您可以尝试使用一些参数(例如,对全连接层采用较小的尺寸),看看是否可以改进它。

关于deep-learning - 为什么我的准确率从一开始训练就很高?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46079058/

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