当前位置:网站首页>【CSDN21天学习挑战赛】第一天,配置环境外加实现mnist手写数字识别
【CSDN21天学习挑战赛】第一天,配置环境外加实现mnist手写数字识别
2022-08-11 05:14:00 【4576号菜鸟】
活动地址:CSDN21天学习挑战赛
学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您:
想系统/深入学习某技术知识点…
一个人摸索学习很难坚持,想组团高效学习…
想写博客但无从下手,急需写作干货注入能量…
热爱写作,愿意让自己成为更好的人…
…
我跟着“K同学啊”学习的,大家可以一起来哦!
https://blog.csdn.net/qq_38251616/article/details/116920825
上面链接有源代码哦~
学习日记-第一天
1、学习知识点
(1)安装使用 jupyter notebook
(2)配置tf2的GPU环境
(3)实现mnist手写数字识别的相关步骤
一、前期工作 1. 设置GPU(如果使用的是CPU可以忽略这步) 2. 导入数据 3. 归一化 4. 可视化图片 5. 调整图片格式 二、构建CNN网络模型 三、编译模型 四、训练模型 五、预测
2、实操
(1)配置环境
1.新建一个虚拟环境
conda create -n jupyter-tf2 python=3.6.5
2.安装 jupyter notebook
Anaconda 自带有jupyter notebook,直接用了。
(1)在jupyter notebook中加载conda创建的虚拟环境
1.激活conda虚拟环境
conda activate jupyter-tf2
2.安装ipykernelconda install ipykernel
3.将环境写入kernel中python -m ipykernel install --user --name jupyter-tf2 --display-name tf2
3.安装 GPU版本tf2环境
我已经有CUDA了,所以直接安装tf2-gpu
pip install tensorflow-gpu -i https://pypi.mirrors.ustc.edu.cn/simple/
(2)前期准备工作
1.设置GPU
照着博主的代码没有问题
2.导入数据
遇到如下问题,缺了matplotlib库:
使用如下命令安装matplotlib:conda install matplotlib
然后就可以运行了
3.归一化
这里我的理解是:RGB颜色值是0-255,那么我们除以最大值(也就是255)就可以将图片的每一个像素的颜色值转换到0-1之间。(矩阵除以常数,就是矩阵的每个元素分别除以这个常数)
4.可视化图片
这一步也没有遇到问题
5.调整图片格式这里的60000和10000应该是训练集和测试集的图片数量, 28,28是图片的宽和高, 上面两个是原本图片的格式,这一步操作加了一个维度:1 这个1我的理解是通道数,初始是1,后面进行卷积的时候根据滤波器数会进行调整
(3)构建CNN网络模型
layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1))中, 32是滤波器数(卷积核数),(3,3)是卷积核大小, activation=“relu"意为使用relu作为激活函数“, (28,28,1)是输入图片的shape 因为layers.Conv2D默认是边缘不填充的,所以28*28的矩阵一行过去只能划分出26个3*3的矩阵, 同理,一列也只能有26个3*3的矩阵,所以输出的shape是(26*26) param(参数)=卷积核大小*通道数*卷积核数量+卷积核数量=3*3*1*32+32=320 param(参数)=卷积核大小*通道数*卷积核数量+卷积核数量=3*3*32*64+64=18496
…
layers.MaxPooling2D((2, 2)),池化层,池化核为2*2, 默认步长是池化核的大小,即:2 所以26*26经过这个池化层后变成13*13
…
layers.Flatten(),Flatten层,将输入的数据变成一维 这里的结果1600就是:5*5*64,即宽*高*通道数 layers.Dense(64, activation='relu'),全连接层,进行重新拟合,减少特征信息的损失 64是神经元数,relu是激活函数 layers.dense(64)会在内部自动生成一个权矩阵kernel和偏移项bias,各变量具体尺寸如下: tf.layers.dense()会生成:尺寸为[1600, 64]的权矩阵kernel,和尺寸为[1, 64]的偏移项bias。 内部的计算过程为y = input * kernel + bias,输出值y的尺寸为[1,64]。 Param = (输入数据的Feature个数+1)*神经元的个数 = (1600+1)*64 = 102464
(4)编译模型
没有遇到问题
(5)训练模型
顺利进行中
(6)预测
plt.imshow()展示第一张图片 从第一张图片的预测结果上看(数组里分别是0~9十个类别的信度), 我们可以看到是类别2的信度有12.079804,最高,因此可以判定图片上的数字是2, 说明预测结果准确。
3.总结
我不是科班的,之前因缘际会应用过yolov3模型,但是对其网络结构只有浅层的了解,没有深入学习,对于深度学习也没有系统的学习,只是学习了如何应用yolov3的模型.
这次借着CSDN的活动,跟着”K同学啊“学习,
在这里学到的一些知识和之前一知半解的知识相互呼应,切切实实得感受到有所收获~
边栏推荐
- (3) How Redis performs stress testing
- 报表控件Stimulsoft报告中的数据矩阵条形码介绍
- (1) Docker installs Redis in practice (one master, two slaves, three sentinels)
- MySQL索引
- Idea essential skills to improve work efficiency
- 2022 building welder (building a special type of work) examination questions and simulation test
- redis连接idea
- 2022煤矿瓦斯检查考试题模拟考试题库及答案
- Golden Warehouse Database KingbaseGIS User Manual (6.8. Geometry Object Input Function)
- Redis详解
猜你喜欢
代码在线审查(添加网页批注)的实现
flaks框架学习:在 URL 中添加变量
Configure checkstyle in IDEA
ARM Architecture 4: Embedded Hardware Platform Interface Development
阿里云无法远程连接数据库MySQL错误码10060解决办法_转载
Redis-数据类型(基本指令、String、List、Set、Hash、ZSet、BitMaps、HyperLogLog、GeoSpatial)/发布和订阅
Idea 2021.3.3版本文件目录展开
(二)性能实时监控平台搭建(Grafana+Prometheus+Jmeter)
0708作业---商品信息
(二)Docker安装Redis实战(持久化AOF和RDB快照)
随机推荐
Prometheus :(一)基本概念
(二)Docker安装Redis实战(持久化AOF和RDB快照)
Apache Commons OGNL语法说明_翻译
Redis-使用jedis连接linux中redis服务器失败的解决方案
Flask框架学习:模板渲染与Get,Post请求
【嵌入式开源库】MultiTimer 的使用,一款可无限扩展的软件定时器
【无标题】2022年胺基化工艺考试题模拟考试题库及在线模拟考试
oracle表空间与用户的创建
普林斯顿微积分读本05第四章--求解多项式的极限问题
Delphi7 learning record - demo example
滴滴出行 nlp算法工程师面试经验分享 带offer截图真实
输入字符串,替换其中敏感词进行输出
Idea essential skills to improve work efficiency
(1) Docker installs Redis in practice (one master, two slaves, three sentinels)
IDEA模板总结
postman脚本的应用
基础数据之double和float区别
Sub-database sub-table ShardingSphere-JDBC notes arrangement
批量修改数据库等视频文件名称
shell 脚本编程---入门