概述
[知乎作答]·神经网络对于输入的维度不一致的处理
本文内容选自笔者在知乎上的一个作答,总结下来作为神经网络对于输入的维度不一致的处理教程。。
1.问题描述
神经网络中,如果每次输入的维度不一致应该怎么处理?
神经网络中,如果每次输入的维度不一致应该怎么处理?假设一队人,有时候这队人有三个(3个输入神经元),有时候这堆人有四个(四个输入)。
2.笔者作答
由于一般网络对输入尺寸有固定的要求。这是为什么呢?因为网络的机构和参数决定了需要固定。这是一个在深度学习开发很常遇到的问题。
解决方法有两个途径:
一是从数据进行操作,数据对齐,这个其实在图片识别上面很常见,就是把图片resize成目标大小。(ImageNet上常用224x224)。但是这种处理不适用于一维的序列,例如语音和心电图等。针对一维数据需要开发人员自定义方法,最简单的就是制定一个合适的长度,超出部分截取,不足部分填充(填充方式也需要好好选择,最简单方式是补充零,常见的还有复制方法)
二是从网络结构处理,其实需要真正固定参数的都是全连接网络,CNN和RNN采用了层间共享参数的设置,参考这里《[深度思考]·为什么CNN是同步(并行)而RNN是异步(串行)的呢?》https://blog.csdn.net/xiaosongshine/article/details/88825575。可以处理不同长度输入,只是输出长度受输入长度控制。其实只需要把输出给处理一下变为固定长度然后再送去全连接中。有什么操作可以完成这个需求呢?全局池化和图像金字塔可以实现。
最后谈谈各自方法优缺点,方法一对齐数据,可能会损失特征,但是可以batch训练,实现起来简单。方法二自适应网络,实现起来有些复杂,batch训练也有些麻烦,目前笔者实现的只能设置batch_size为1。
最后
以上就是稳重小丸子为你收集整理的[知乎作答]·神经网络对于输入的维度不一致的处理[知乎作答]·神经网络对于输入的维度不一致的处理的全部内容,希望文章能够帮你解决[知乎作答]·神经网络对于输入的维度不一致的处理[知乎作答]·神经网络对于输入的维度不一致的处理所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复