keras训练cnn模型时loss为nan

1.首先记下来如何解决这个问题的:由于我代码中 model.compile(loss=‘categorical_crossentropy‘, optimizer=‘sgd‘, metrics=[‘accuracy‘])

即损失函数用的是categorical_crossentropy所以,在pycharm中双击shift键,寻找该函数,会出现keras.loss模块中有该函数,进入该函数后,

原函数为:

def categorical_crossentropy(y_true, y_pred):    return K.categorical_crossentropy(y_true, y_pred)

修改为:
def categorical_crossentropy(y_true, y_pred):    return K.categorical_crossentropy(y_true, y_pred+1e-5)
网上很多都是tensorflow的解决方案,找了好久好久才在一篇博客的启发下,想着去找这个损失函数。https://www.cnblogs.com/hutao722/p/9761387.html

2.另外是为什么会出现这种现象(当然还会有其他可能,这里只记下我这种问题出现的原因)

我这里是在计算损失函数时求log的时候遇到了log(0)则会导致nan 

原文地址:https://www.cnblogs.com/kjkj/p/10528259.html

时间: 2024-10-09 04:15:53

keras训练cnn模型时loss为nan的相关文章

PyQt训练BP模型时,显示waiting动图(多线程)

1.实现效果 2.相关代码 实现BP训练模型的线程类 1 class WorkThread(QtCore.QThread): 2 finish_trigger = QtCore.pyqtSignal() # 关闭waiting_gif 3 result_trigger = QtCore.pyqtSignal(pd.Series) # 传递预测结果信号 4 evaluate_trigger = QtCore.pyqtSignal(list) # 传递正确率信号 5 6 def __int__(se

训练贷款模型时样本、模型、监控的一些点

一.样本 理想情况下,样本分三部分. 训练样本70% 验证样本(有时也叫测试样本)30% 跨时间验证样本:但经常这块数据没有,那也就只用前面的数据来做也可以. 二.如何确保模型训练完成 1.训练样本的roc和ks达到比较好的水平(0.7,0.3及以上) 2.验证样本和训练样本的指标差距不大(如10%,也要根据ks和roc的绝对值来看) 3.跨时间验证样本和训练样本的指标差距不大(如10%,也要根据ks和roc的绝对值来看) 三.模型上线监控 变量稳定性 模型稳定性 模型ks 通过率.拒绝率.在各

解决在django中应用keras模型时出现的ValueError("Tensor %s is not an element of this graph." % obj)问题

用keras训练好模型,再在django初始化加载模型,这个过程没有问题,但是在调用到模型执行model.predict()的时候就报错: raise ValueError("Tensor %s is not an element of this graph." % obj) ValueError: Tensor Tensor("dense_2/Softmax:0", shape=(?, 2), dtype=float32) is not an element of

使用docker安装部署Spark集群来训练CNN(含Python实例)

使用docker安装部署Spark集群来训练CNN(含Python实例) 本博客仅为作者记录笔记之用,不免有很多细节不对之处. 还望各位看官能够见谅,欢迎批评指正. 博客虽水,然亦博主之苦劳也. 如需转载,请附上本文链接,不甚感激! http://blog.csdn.net/cyh_24/article/details/49683221 实验室有4台神服务器,每台有8个tesla-GPU,然而平时做实验都只使用了其中的一个GPU,实在暴遣天物! 于是想用spark来把这些GPU都利用起来.听闻d

8、在fa时,用HW200句的monophone.mmf和data/list/mono.list作为一个充分训练的模型文件,进行fa

在对ZhiJun40句语料做fa时,ZhiJun_SpeakerA2_30-fa-New,用的是HW2000句的monophone.mmf和data/list/mono.list作为,一个标准的充分训练的模型文件,然后进行fa fa之后得到的是mono类型的标注文件,位于/gv/.../下面, 然后,用Ning的脚本得到full类型的标注, 然后就用这套标注,进行合成了,make一下 结果报错了: =============== ang ================ ERROR [+2121

keras: 在构建LSTM模型时,使用变长序列的方法

众所周知,LSTM的一大优势就是其能够处理变长序列.而在使用keras搭建模型时,如果直接使用LSTM层作为网络输入的第一层,需要指定输入的大小.如果需要使用变长序列,那么,只需要在LSTM层前加一个Masking层,或者embedding层即可. from keras.layers import Masking, Embedding from keras.layers import LSTM model = Sequential() model.add(Masking(mask_value=

CNN眼中的世界:利用Keras解释CNN的滤波器

目录 原文信息 使用Keras探索卷积网络的滤波器 可视化所有的滤波器 Deep Dream(nightmare) 愚弄神经网络 革命尚未成功,同志仍需努力 原文信息 本文地址:http://blog.keras.io/how-convolutional-neural-networks-see-the-world.html 本文作者:Francois Chollet 本文的翻译版最先由我发布在Keras中文文档,为了方便各位网友,特将此文搬移到CSDN. 使用Keras探索卷积网络的滤波器 本文

对比学习用 Keras 搭建 CNN RNN 等常用神经网络

Keras 是一个兼容 Theano 和 Tensorflow 的神经网络高级包, 用他来组件一个神经网络更加快速, 几条语句就搞定了. 而且广泛的兼容性能使 Keras 在 Windows 和 MacOS 或者 Linux 上运行无阻碍. 今天来对比学习一下用 Keras 搭建下面几个常用神经网络: 回归 RNN回归 分类 CNN分类 RNN分类 自编码分类 它们的步骤差不多是一样的: [导入模块并创建数据] [建立模型] [定义优化器] [激活模型] [训练模型] [检验模型] [可视化结果

Keras Sequential顺序模型

keras是基于tensorflow封装的的高级API,Keras的优点是可以快速的开发实验,它能够以TensorFlow, CNTK, 或者 Theano 作为后端运行. 模型构建 最简单的模型是 Sequential 顺序模型,它由多个网络层线性堆叠.对于更复杂的结构,你应该使用 Keras 函数式 API,它允许构建任意的神经网络图. 用Keras定义网络模型有两种方式, Sequential 顺序模型 Keras 函数式 API模型 1.Sequential 顺序模型 from kera