美文网首页
keras边用边学系列

keras边用边学系列

作者: 南宫海语_0739 | 来源:发表于2019-02-01 10:40 被阅读0次

    sequential,即序贯模型,是多个网络层的线性叠加,可以将Layer的list作为sequential()的参数传递给sequential模型,也可以通过sequential的add方法将layer一个个加入模型中。

    tuple是元组的意思。关于卷积神经网络CNN,ResNet和Dense是两种不同的CNN模型,Res是建立前面层和后面层的短路连接,有利于梯度的反向传播,从而训练出更深的神经网络,Dense则是建立前面所有层和后面层的密集连接。Dense还可以实现特征重用(feature reuse)。这让Dense可以在参数和计算成本更小的情况下实现比Res更好的性能。

    我是这样理解的,Dense是通过密集连接来达到特征重用的效果,而特征的反复使用也让它对特征的利用的更充分。假设有一个N层的神经网络,那么就有N+1个节点。如果是Res,那么也就只有N次连接了。但是Dense通过密集连接,让后面的每一层都跟前面的所有层都建立连接关系,那么就有(N+1)*N/2,除以2是排除掉重复的连接。在Res中,每一层仅仅接受前面一层作为输入,而在Dense中,每一层会接受前面所有层作为输入。

    Dense的几个参数,output_dim,输出数据的维度;init,初始化权值的函数名称,可以传递自己编写的theano function,也可以用keras内置的,如果没有给weights传递参数时,此参数必写;weights,用于初始化权值的数组组成的list,如果指定了init,那么weights可以复制None或者空缺;input_dim,输入数据的维度。这里我理解的Dense是一个一维的全连接层。

    relu是一个激活函数,其定义为当x为负,函数值为0,否则,函数值为x。值得一提的是,有一些激活函数,虽然图像比较平滑,但由于加入了指数和对数运算,无形中增加了计算量,最后的效果也不一定好。

    模型训练前需要进行配置(compile),compile(optimizer,loss,metrics),其中,optimizer可以是预定义的优化器,如rmsprop,adagrad;loss为损失函数,也叫目标函数,也可以是预定义的loss,如categorical_crossentropy、mse;metrics为指标列表。

    https://www.jianshu.com/p/970aed041046  这里简单的说了下ModelCheckpoint中的参数。

    history字典包含val_loss、val_acc、loss、acc,其中val_是测试集上的,另外一个是训练集上的,loss表示损失值,acc表示准确率。

    相关文章

      网友评论

          本文标题:keras边用边学系列

          本文链接:https://www.haomeiwen.com/subject/ebklsqtx.html