python卷积神经网络CNN的训练算法,python建立神经网络模型
这篇文章主要为大家介绍了大蟒神经网络学习使用克拉斯构建美国有线新闻网;卷积神经网络网络训练,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
目录
Keras中构建美国有线新闻网;卷积神经网络的重要函数1、Conv2D2、MaxPooling2D3、Flatten全部代码利用克拉斯构建完普通碱基对神经网络后,还要会构建美国有线新闻网;卷积神经网络
Keras中构建CNN的重要函数
1、Conv2D
Conv2D用于在美国有线新闻网;卷积神经网络中构建卷积层,在使用它之前需要在库函数处进口它。
从keras .层导入Conv2D
在实际使用时,需要用到几个参数。
Conv2D(
nb_filter=32,
nb_row=5,
nb_col=5,
border_mode=相同,
输入形状=(28,28,1)
)
其中,nb _过滤器代表卷积层的输出有多少个渠道,卷积之后图像会越来越厚,这就是卷积后图像的厚度。nb_row和nb_col的组合就是卷积器的大小,这里卷积器是(5,5)的大小。边框模式代表着填料的方式,相同表示卷积前后图像的形状不变。输入_形状代表输入的形状。
2、MaxPooling2D
MaxPooling2D指的是池化层,在使用它之前需要在库函数处进口它。
从keras .层导入MaxPooling2D
在实际使用时,需要用到几个参数。
MaxPooling2D(
pool_size=(2,2),
步幅=(2,2),
border_mode=相同
)
其中,池大小表示池化器的大小,在这里,池化器的形状是(2,2)。大步是池化器的步长,这里在X和Y方向上都是2,池化后,输出比输入的形状小了1/2。边框模式代表着填料的方式。
3、Flatten
变平用于将卷积池化后最后的输出变为一维向量,这样才可以和全连接层连接,用于计算。在使用前需要用进口导入。
从keras .层导入展平
在实际使用时,在最后一个池化层后直接添加层即可
model.add(Flatten())
全部代码
这是一个卷积神经网络的例子,用于识别手写体,其神经网络结构如下:
卷积层1-池化层1-卷积层2-池化层2-展平-全连接层1-全连接层2-全连接层3。
单个样本的形状如下:
(28,28,1)-(28,28,32)-(14,14,32)-(14,14,64)-(7,7,64)-(3136)-(1024)-(256)
将数组作为铭牌导入
从keras.models导入序列
从keras .层导入密集,激活,Conv2D,MaxPooling2D,Flatten ##全连接层
从keras.datasets导入手写数字识别
从keras.utils导入np_utils
优化程序导入圣经》和《古兰经》传统中)亚当(人类第一人的名字
(X_train,Y_train),(X_test,Y_test)=mnist.load_data()
X火车=X火车。形状(-1,28,28,1)
X _测试=X _测试。形状(-1,28,28,1)
Y _ train=NP _ utils。to _ categorial(Y _ train,num_classes=10)
Y _ test=NP _ utils。to _ categorial(Y _ test,num_classes=10)
模型=顺序()
# conv1
model.add(
Conv2D(
nb_filter=32,
nb_row=5,
nb_col=5,
border_mode=相同,
输入形状=(28,28,1)
)
)
model.add(激活( relu ))
# pool1
model.add(
MaxPooling2D(
pool_size=(2,2),
步幅=(2,2),
border_mode=相同
)
)
# conv2
model.add(
Conv2D(
nb_filter=64,
nb_row=5,
nb_col=5,
border_mode=相同
)
)
model.add(激活( relu ))
# pool2
model.add(
MaxPooling2D(
pool_size=(2,2),
步幅=(2,2),
border_mode=相同
)
)
# 全连接层
model.add(Flatten())
model.add(密集(1024))
model.add(激活( relu ))
model.add(密集(256))
model.add(激活( relu ))
model.add(Dense(10))
model.add(激活( softmax ))
亚当=亚当(lr=1e-4)
##编译
模型。编译(loss= category _ cross entropy ,optimizer=adam,metrics=[accuracy])
#塔林
打印( \ n培训)
cost=model.fit(X_train,Y_train,nb_epoch=2,batch_size=32)
打印( \ n测试)
## acc
成本,准确性=模型。评估(X _测试,Y _测试)
## W,b=model.layers[0].获取权重()
打印("精确度:",精确度)
实验结果为:
纪元1/2
60000/60000[==========================]-64s 1 ms/step-loss : 0.7664-ACC : 0.9224
纪元2/2
60000/60000[============================]-62s 1 ms/step-loss : 0.0473-ACC : 0.9858
试验
10000/10000[==============================]-2s 169 us/步
精确度: 0.9856
以上是python神经网络Keras构建CNN网络训练的详细内容。关于Keras构建CNN网络培训的更多信息,请关注盛行IT软件开发工作室的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。