lomoda0715 2018-12-10 06:32 采纳率: 75%
浏览 13984
已采纳

使用keras进行分类问题时,验证集loss,accuracy 显示0.0000e+00,但是最后画图像时能显示出验证曲线

data_train, data_test, label_train, label_test = train_test_split(data_all, label_all, test_size= 0.2, random_state = 1)

data_train, data_val, label_train, label_val = train_test_split(data_train,label_train, test_size = 0.25)

data_train = np.asarray(data_train, np.float32)
data_test = np.asarray(data_test, np.float32)
data_val = np.asarray(data_val, np.float32)
label_train = np.asarray(label_train, np.int32)
label_test = np.asarray(label_test, np.int32)
label_val = np.asarray(label_val, np.int32)

training = model.fit_generator(datagen.flow(data_train, label_train_binary, batch_size=200,shuffle=True), validation_data=(data_val,label_val_binary), samples_per_epoch=len(data_train)*8, nb_epoch=30, verbose=1)

def plot_history(history):
plt.plot(training.history['acc'])
plt.plot(training.history['val_acc'])
plt.title('model accuracy')
plt.xlabel('epoch')
plt.ylabel('accuracy')
plt.legend(['acc', 'val_acc'], loc='lower right')
plt.show()
plt.plot(training.history['loss'])
plt.plot(training.history['val_loss'])
plt.title('model loss')
plt.xlabel('epoch')
plt.ylabel('loss')
plt.legend(['loss', 'val_loss'], loc='lower right')
plt.show()

plot_history(training)

图片说明图片说明

  • 写回答

4条回答 默认 最新

  • threenewbee 2018-12-10 06:34
    关注

    没看到你history输出的代码,感觉曲线图是可信的,而你输出val_loss的时候输出错了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • 哈喽大海豚 2018-12-10 07:47
    关注

    数据的类型不一致,有的是int,有的是float,需要转成一样的进行计算

    评论
  • Remon98 2019-05-29 14:06
    关注

    你的目标函数有问题吧

    评论
  • silence_小田 2019-03-18 15:42
    关注

    你的batch_size 设置200,实际上只有29,你把它改为29试试

    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 初学者c语言题目解答
  • ¥15 div editable中的光标问题
  • ¥15 mysql报错1415Not allowed to return a result set from a trigger 不知如何修改
  • ¥60 Python输出Excel数据整理,算法较为复杂
  • ¥15 回答几个问题 关于数据库
  • ¥15 51单片机串口通信问题,未完成且要修改
  • ¥15 百鸡问题 c++编程问题(相关搜索:输出数据)
  • ¥30 如何在CMD中设置代理
  • ¥15 我有一块薛定谔的硬盘
  • ¥15 微信小游戏开发2D碰撞检测问题