广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python神经网络Keras构建CNN网络训练
  • 751
分享到

python神经网络Keras构建CNN网络训练

2024-04-02 19:04:59 751人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录Keras中构建CNN的重要函数1、Conv2D2、MaxPooling2D3、Flatten全部代码利用Keras构建完普通BP神经网络后,还要会构建CNN Keras中构建C

利用Keras构建完普通BP神经网络后,还要会构建CNN

Keras中构建CNN的重要函数

1、Conv2D

Conv2D用于在CNN中构建卷积层,在使用它之前需要在库函数处import它。

from keras.layers import Conv2D

在实际使用时,需要用到几个参数。

Conv2D(
    nb_filter = 32,
    nb_row = 5,
    nb_col = 5,
    border_mode = 'same',
    input_shape = (28,28,1)
)

其中,nb_filter代表卷积层的输出有多少个channel,卷积之后图像会越来越厚,这就是卷积后图像的厚度。nb_row和nb_col的组合就是卷积器的大小,这里卷积器是(5,5)的大小。border_mode代表着padding的方式,same表示卷积前后图像的shape不变。input_shape代表输入的shape。

2、MaxPooling2D

MaxPooling2D指的是池化层,在使用它之前需要在库函数处import它。

from keras.layers import MaxPooling2D

在实际使用时,需要用到几个参数。

MaxPooling2D(
    pool_size = (2,2),
    strides = (2,2),
    border_mode = 'same'
)

其中,pool_size表示池化器的大小,在这里,池化器的shape是(2,2)。strides是池化器的步长,这里在X和Y方向上都是2,池化后,输出比输入的shape小了1/2。border_mode代表着padding的方式。

3、Flatten

Flatten用于将卷积池化后最后的输出变为一维向量,这样才可以和全连接层连接,用于计算。在使用前需要用import导入。

from keras.layers import Flatten

在实际使用时,在最后一个池化层后直接添加层即可

model.add(Flatten())

全部代码

这是一个卷积神经网络的例子,用于识别手写体,其神经网络结构如下:

卷积层1->池化层1->卷积层2->池化层2->flatten->全连接层1->全连接层2->全连接层3。

单个样本的shape如下:

(28,28,1)->(28,28,32)->(14,14,32)->(14,14,64)->(7,7,64)->(3136)->(1024)->(256)

import numpy as np
from keras.models import Sequential
from keras.layers import Dense,Activation,Conv2D,MaxPooling2D,Flatten ## 全连接层
from keras.datasets import mnist
from keras.utils import np_utils
from keras.optimizers import Adam
(X_train,Y_train),(X_test,Y_test) = mnist.load_data()
X_train = X_train.reshape(-1,28,28,1)
X_test = X_test.reshape(-1,28,28,1)
Y_train = np_utils.to_cateGorical(Y_train,num_classes= 10)
Y_test = np_utils.to_categorical(Y_test,num_classes= 10)
model = Sequential()
# conv1
model.add(
    Conv2D(
        nb_filter = 32,
        nb_row = 5,
        nb_col = 5,
        border_mode = 'same',
        input_shape = (28,28,1)
    )
)
model.add(Activation("relu"))
# pool1
model.add(
    MaxPooling2D(
        pool_size = (2,2),
        strides = (2,2),
        border_mode = 'same'
    )
)
# conv2
model.add(
    Conv2D(
        nb_filter = 64,
        nb_row = 5,
        nb_col = 5,
        border_mode = 'same'
    )
)
model.add(Activation("relu"))
# pool2
model.add(
    MaxPooling2D(
        pool_size = (2,2),
        strides = (2,2),
        border_mode = 'same'
    )
)
# 全连接层
model.add(Flatten())
model.add(Dense(1024))
model.add(Activation("relu"))
model.add(Dense(256))
model.add(Activation("relu"))
model.add(Dense(10))
model.add(Activation("softmax"))
adam = Adam(lr = 1e-4)
## compile
model.compile(loss = 'categorical_crossentropy',optimizer = adam,metrics = ['accuracy'])
## tarin
print("\ntraining")
cost = model.fit(X_train,Y_train,nb_epoch = 2,batch_size = 32)
print("\nTest")
## acc
cost,accuracy = model.evaluate(X_test,Y_test)
## W,b = model.layers[0].get_weights()
print("accuracy:",accuracy)

实验结果为:

Epoch 1/2
60000/60000 [==============================] - 64s 1ms/step - loss: 0.7664 - acc: 0.9224
Epoch 2/2
60000/60000 [==============================] - 62s 1ms/step - loss: 0.0473 - acc: 0.9858
Test
10000/10000 [==============================] - 2s 169us/step
accuracy: 0.9856

以上就是python神经网络Keras构建CNN网络训练的详细内容,更多关于Keras构建CNN网络训练的资料请关注编程网其它相关文章!

--结束END--

本文标题: python神经网络Keras构建CNN网络训练

本文链接: https://www.lsjlt.com/news/117657.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python神经网络Keras构建CNN网络训练
    目录Keras中构建CNN的重要函数1、Conv2D2、MaxPooling2D3、Flatten全部代码利用Keras构建完普通BP神经网络后,还要会构建CNN Keras中构建C...
    99+
    2022-11-10
  • python神经网络使用Keras构建RNN训练
    目录Keras中构建RNN的重要函数1、SimpleRNN2、model.train_on_batch全部代码Keras中构建RNN的重要函数 1、SimpleRNN SimpleR...
    99+
    2022-11-10
  • python中Keras如何构建CNN网络
    这篇文章主要介绍了python中Keras如何构建CNN网络的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python中Keras如何构建CNN网络文章都会有所收获,下面我们一起来看看吧。Keras中构建CNN...
    99+
    2023-06-30
  • python神经网络怎么使用Keras构建RNN
    这篇文章主要介绍“python神经网络怎么使用Keras构建RNN”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python神经网络怎么使用Keras构建RNN”文章能帮助大家解决问题。Keras中...
    99+
    2023-06-30
  • 云服务器训练神经网络
    云服务器训练神经网络是指将一组经过优化的数据(例如图像、语音、文本等)作为输入,并使用神经网络算法来学习这些输入数据的特征(模式)和关系(因果)。 以下是云服务器训练神经网络的一般步骤: 数据预处理:数据从云服务器的数据存储中提取。需要...
    99+
    2023-10-26
    神经网络 服务器
  • python人工智能tensorflow构建卷积神经网络CNN
    目录简介隐含层介绍1、卷积层2、池化层3、全连接层具体实现代码卷积层、池化层与全连接层实现代码全部代码学习神经网络已经有一段时间,从普通的BP神经网络到LSTM长短期记忆网络都有一定...
    99+
    2022-11-10
  • 如何在python中使用Tensorflow训练BP神经网络
    如何在python中使用Tensorflow训练BP神经网络?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。使用软件Python 3.8,Tensorflow2.0问题描述鸢...
    99+
    2023-06-15
  • python神经网络Keras GhostNet模型的实现
    目录什么是GhostNet模型GhostNet模型的实现思路1、Ghost Module2、Ghost Bottlenecks3、Ghostnet的构建GhostNet的代码构建1、...
    99+
    2022-11-11
  • python神经网络slim常用函数训练保存模型
    目录学习前言slim是什么slim常用函数1、slim = tf.contrib.slim2、slim.create_global_step3、slim.dataset.Datase...
    99+
    2022-11-10
  • python神经网络Keras搭建RFBnet目标检测平台
    目录什么是RFBnet目标检测算法RFBnet实现思路一、预测部分1、主干网络介绍2、从特征获取预测结果3、预测结果的解码4、在原图上进行绘制二、训练部分1、真实框的处理2、利用处理...
    99+
    2022-11-11
  • 云服务器训练神经网络内存占满
    如果您使用的是云服务器训练神经网络,那么训练所需的内存可能会很快用完。这是因为神经网络需要在大量数据上进行训练,而云服务器的计算资源很有限,因此很可能无法满足训练所需的内存。 为了避免这种情况发生,您需要考虑以下几点: 使用高性能的服务...
    99+
    2023-10-26
    神经网络 占满 内存
  • python神经网络AlexNet分类模型训练猫狗数据集
    目录什么是AlexNet模型训练前准备1、数据集处理2、创建Keras的AlexNet模型开始训练1、训练的主函数2、Keras数据生成器3、主训练函数全部代码训练结果最近在做实验室...
    99+
    2022-11-10
  • Pytorch 使用Google Colab训练神经网络深度学习
    目录学习前言什么是Google Colab相关链接利用Colab进行训练一、数据集与预训练权重的上传1、数据集的上传2、预训练权重的上传二、打开Colab并配置环境1、笔记本的创建2...
    99+
    2022-11-10
  • pytorch训练神经网络爆内存的解决方案
    训练的时候内存一直在增加,最后内存爆满,被迫中断。 后来换了一个电脑发现还是这样,考虑是代码的问题。 检查才发现我的代码两次存了loss,只有一个地方写的是loss.item()。...
    99+
    2022-11-12
  • Pytorch怎么使用Google Colab训练神经网络深度
    本篇内容介绍了“Pytorch怎么使用Google Colab训练神经网络深度”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是...
    99+
    2023-06-30
  • 如果通过设置gpu实现神经网络训练
    这期内容当中小编将会给大家带来有关如果通过设置gpu实现神经网络训练,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。在定义图结构之前不用加入gpu:0,只有在session中计算之前在加入,否则的话会提示不...
    99+
    2023-06-06
  • python 使用Tensorflow训练BP神经网络实现鸢尾花分类
    Hello,兄弟们,开始搞深度学习了,今天出第一篇博客,小白一枚,如果发现错误请及时指正,万分感谢。 使用软件 Python 3.8,Tensorflow2.0 问题描述 鸢尾花主要分为狗尾草鸢尾(0)、杂色鸢尾...
    99+
    2022-06-02
    python 使用Tensorflow python 训练BP神经网络 python 鸢尾花分类
  • python神经网络tensorflow利用训练好的模型进行预测
    目录学习前言载入模型思路实现代码学习前言 在神经网络学习中slim常用函数与如何训练、保存模型文章里已经讲述了如何使用slim训练出来一个模型,这篇文章将会讲述如何预测。 载入模型思...
    99+
    2022-11-10
  • python神经网络facenet人脸检测及keras实现
    目录什么是facenetInception-ResNetV11、Stem的结构:2、Inception-resnet-A的结构:3、Inception-resnet-B的结构:4、I...
    99+
    2022-11-11
  • python神经网络Keras实现GRU及其参数量
    目录什么是GRU1、GRU单元的输入与输出2、GRU的门结构3、GRU的参数量计算a、更新门b、重置门c、全部参数量在Keras中实现GRU实现代码什么是GRU GRU是LSTM的一...
    99+
    2022-11-11
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作