第一节:Keras深度学习框架之环境搭建

请在学习本节前阅读我们之前的预热课程:

卷积神经网络的框架解读(上)_BBM的开源HUB的博客-CSDN博客

卷积神经网络的框架解读(下)_BBM的开源HUB的博客-CSDN博客

从本节开始,我们将进入到Keras的详细介绍和代码精读,为开始我们的Keras之行,我们首先要搭建一个学习平台。现在让我们开始吧。

一:环境准备

1、安装anaconda

下载地址:Anaconda | Individual Edition

根据需要,下载你需要版本,如果你是windows操作系统就下载:“64-Bit Graphical Installer ”,如果你是linux就下载:64-Bit (x86) Installer,下载完后,安装anaconda。

Windows平台

双击安装文件Anaconda3-2021.11-Windows-x86_64.exe开始安装,注意在这里要全部选上:

 注意安装文件的文件名,可以在不同时期会因为版本号的不同有变化,大家可灵活安装

Linux平台

bash Anaconda3-2021.11-Linux-x86_64.sh

 linux平台在阅读授权文件后,就是一路yes,安装完后,重启电脑。

2、创建工作环境

conda create -n keras python=3.8

3、进入工作环境

conda activate keras

4、安装tensorflow

电脑仅有CPU的安装这个

conda install tensorflow

电脑有GPU的安装这个

conda install tensorflow-gpu

其他关联包的安装

conda install tensorboard

安装keras

conda install keras

二:安装编译环境

我们这里介绍使用jupyter,主要原因是代码量比较小,同时在做深度学习的时候可以对每一行代码进行调试,所以这里我们使用jupyter搭建编译环境。

conda install nb_conda

启动jupyter

jupyter notebook &

启动后的界面如下:

 在New处创建一个新的notebook,如下图:

 三:安装环境的验证及keras初体验

1、在第一行,我们导入keras输入:

import keras

 2、导入模型,我们以序惯模型为例

from keras.models import Sequential

3、定义模型对象

Model = Sequential()

4、添加模块

Model.add(layer)

5、导入全连结层

from keras.layer import Dense

6、导入优化器

from keras import optimizers

7、使用随机梯度下降法

optimizers.SGD(lr=0.01, momentum=0.0, decay=0.0, nesterov=False)

lr : learn rate, momentum : 冲量, decay : 衰减函数, netsterov:是否使用牛顿动量

四:keras函数简介

显示keras的功能模块和简介。

dir (keras)
['Input',
 'Model',
 'RandomRotation',
 'Sequential',     #上面这四个模块是以前的老模块,新的版本已将融合到下面的模块里去了。
 '__builtins__',
 '__cached__',
 '__doc__',
 '__file__',
 '__loader__',
 '__name__',
 '__package__',
 '__path__',
 '__spec__',
 '__version__',    #这十个是内置函数
 'activations',    #激活函数
 'applications',   #应用,里面提供了训练好的keras模型
 'backend',        #后端函数,keras通过他调用后端函数。
 'callbacks',      #回调函数,在高阶应用时训练网络内部的状态。
 'constraints',    #约束项
 'datasets',       #keras自带的数据集
 'engine',         #引擎模块,是列层的核心代码
 'initializers',   #初始化方法
 'layers',         #重点层,比如dense,
 'losses',         #损失函数,比如均方差,交差商等,用来衡量网络训练的好坏。
 'metrics',        #评估函数,用他来评价神经网络的性能
 'models',         #模型库
 'optimizers',     #优化器,编译用的模块
 'preprocessing',  #预处理模块
 'regularizers',   #正则化方法,防止神经网在训练过程中的过拟合。
 'utils',          #工具模块,包括数据转换和一些数学方法
 'wrappers'  ]     #包装器

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
对于二维卷积神经网络,我们需要使用Keras中的Conv2D层,该层可以接受二维的输入数据。假设你的图片数据为`(num_samples, height, width, channels)`,其中`num_samples`表示样本数,`height`表示图片高度,`width`表示图片宽度,`channels`表示图片通道数,一般为3(RGB彩色图片)或1(灰度图片)。 首先,我们需要将图片数据reshape成适合输入卷积层的格式,即`(num_samples, height, width, channels)`。代码如下: ```python import numpy as np # 加载图片数据和标签 X_train = np.load('train_data.npy') y_train = np.load('train_label.npy') # 将图片数据reshape成适合输入卷积层的格式 X_train = X_train.reshape(-1, height, width, channels) ``` 接下来,我们就可以开始搭建卷积神经网络模型了。以下是一个简单的卷积神经网络模型: ```python from keras.models import Sequential from keras.layers import Conv2D, MaxPooling2D, Flatten, Dense model = Sequential() # 第一层卷积层,32个3x3的卷积核,使用ReLU激活函数 model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(height, width, channels))) # 第二层池化层,使用2x2的池化窗口 model.add(MaxPooling2D(pool_size=(2, 2))) # 第三层卷积层,64个3x3的卷积核,使用ReLU激活函数 model.add(Conv2D(64, (3, 3), activation='relu')) # 第四层池化层,使用2x2的池化窗口 model.add(MaxPooling2D(pool_size=(2, 2))) # 将卷积层的输出展开成一维向量 model.add(Flatten()) # 第五层全连接层,128个神经元,使用ReLU激活函数 model.add(Dense(128, activation='relu')) # 第六层全连接层,10个神经元,使用softmax激活函数进行多分类 model.add(Dense(num_classes, activation='softmax')) # 编译模型 model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) ``` 其中,第一层卷积层使用了32个3x3的卷积核,第二层池化层使用了2x2的池化窗口,第三层卷积层使用了64个3x3的卷积核,第四层池化层同样使用了2x2的池化窗口,第五层全连接层使用了128个神经元,最后一层全连接层使用了softmax激活函数进行多分类。 值得注意的是,对于图片标签,我们需要将其转换为one-hot编码形式,代码如下: ```python from keras.utils import to_categorical # 将标签转换为one-hot编码形式 y_train = to_categorical(y_train, num_classes) ``` 这样,我们就可以开始训练模型了: ```python model.fit(X_train, y_train, batch_size=32, epochs=10, validation_split=0.2) ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BBM的开源HUB

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值