keras随笔

对于深度学习的coder来说,首先需要选择一个合适的深度学习框架,之前一直用的tensorflow,偶尔会用下keras和pytorch,在tf2.0推出之后集成了keras的api,因此打算记录一些keras框架中可能会遇到的一些坑。

1、RNN的stateful
对于RNN结构的网络有一个参数stateful,如果设置为True则每个batch_size的最后一个时刻的隐藏状态会被保存下来,作为新的batch的第一个时刻的隐藏状态的初始值。

2、MASK层
对于序列模型来说,输入通常都是不确定长度的,因此会采用补0或者截取的方式,把输入数据处理成统一长度再送入模型,在tf中,即使被处理为0的部分依旧会进行计算,而在keras中,有一个Masking层,该层会对为0的位置的值不做任何计算,因此其计算效率也会高一些。
但是Masking层也有一个巨坑,对于模型的其他layer,必须保证其支持mask操作,不然会抛出一个异常。

3、DropOut与SpatialDropoutXD区别
DropOut会对所有数据进行随机dropout,SpatialDropoutXD是对某个具体的维度进行dropout。

4、class_weight与sample_weight

  • class_weight 是对loss的权重进行设置,当数据不平衡的时候可设置该参数,传入的是一个字典。例如{0:1,1:50}表明0类别的loss权重是1,1类别的loss权重是50
  • sample_weight 是对输入数据进行加权,某些输入数据可能存在一定的不可信,则可以对这部分可信度低的数据进行加权,长度和输入数据长度需要保持一致。

持续更新中…

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值