科普: 人工神经网络 VS 生物神经网络-Keras 快速搭建神经网络 (莫烦 Python 教程)

AID:
CID:
视频图片:
作者头像:
弹幕地址:
视频描述:

热门回复:

  • 就是一个傻猪:莫烦,教我们写sci吧!开讲座吧
  • 1265961798:我想看莫烦出一个自然语言处理方面的视频
  • 薛定谔的萌猫:P11:CNN卷积神经网络 里面有一个失之毫厘,谬以千里的小错误 @莫烦Python: input_shape是(1, 28, 28),但是keras的Conv2D层,默认的RGB通道是在最后一维的,也就是(28, 28, n)。 因此在视频里的数据输入是不对的,相当于把其中一个28当成了28个颜色通道,然后输入是1*28的一条图片。至于为什么还是有那么高的准确率,我觉得其一是CNN的机制是会把不同通道求和处理的,因此还是能获得特征信息,其次就是深度学习炼金术的神奇了[微笑]。 正确的写法应该是:在Conv2D层添加参数:data_format="channels_first" 或者把图片reshape成(-1, 28, 28, 1),因为根据keras文档 https://keras.io/layers/convolutional/,Conv2D层默认的输入是channels_last,也就是(28, 28, 1)这样的格式。 另注: 补充一下是怎么发现这个错误的,在train模型之前,看一下model.summary()中的维度,发现是: _________________________________________________________________ Layer (type) Output Shape Param # conv2d_29 (Conv2D) (None, 1, 28, 32) 22432 _________________________________________________________________ activation_43 (Activation) (None, 1, 28, 32) 0 _________________________________________________________________ max_pooling2d_24 (MaxPooling (None, 1, 14, 32) 0 ... ... 正常情况下,MaxPooling会把图片的长宽都缩小,没有理由出现(None, 1, 28, 32), (None, 1, 14, **)这样的维度,因此可以认为计算机把那个1维度当成了图片的维度,而非颜色通道的维度。因此是错误的。
  • 乒乒乓乓66:https://github.com/MorvanZhou/tutorials/tree/master/kerasTUT 代码在这里
  • TrashSir:morvan大佬,keras版本更新了么?还是因为我的backend是采用的tensorflow?怎么定义的好多参数名都不一样啊,SimpleRNN那里完全没看懂参数名怎么对应的