深度学习原理与框架猫狗图像识别卷积神经网络(代码)1.cv2.resize(图片压缩)2..getshape()[1:4].numelements(获得最后三维度之和)3.saver.save(训练参数的保存)4.tf.train.importmetagraph(加载模型结构)5.saver.restore(训练参数载入)python我的最爱

1.cv2.resize(image,(image_size,image_size),0,0,cv2.INTER_LINEAR)

参数说明:image表示输入图片,image_size表示变化后的图片大小,0,0表示dx和dy,cv2.INTER_LINEAR表示插值的方式为线性插值

2.image.get_shape[1:4].num_elements()获得最后三个维度的大小之和

参数说明:image表示输入的图片

3.saver.save(sess,path,global_step=i)进行sess的加载

参数说明:sess表示输入,path表示保存路径,global_step表示路径的结尾

4.saver=tf.train.import_meta_graph('./dog-cats-model/dog-cat.ckpt-3700.meta')#加载训练好的模型的meta值

参数说明:./dog-cats-model/dog-cat.ckpt-3700.meta表示meta的路径

5.saver.restore(sess,ckpt_path)#加载训练好的参数模型

参数说明:sess表示执行函数,ckpt_path表示ckpt的路径

6.graph=tf.get_defualt_graph获得训练好的参数图

7.graph.get_tensor_by_name('x:0')获得模型的占位参数,以便进行模型的预测

参数说明:’x:0‘表示模型在训练过程中,tf.placeholder(name=’x')输入数据设置的名字

代码中的学习点:1.使用cv2.resize对图片的维度进行压缩

2.使用np.zeros(num_classes)构造标签,lable[index]=1构造标签

3.使用image.get_shape[1:4].num_elements获得最后三个维度的大小

4.saver.save(sess,path,global_step=i)进行模型参数的存储

5.save.restore(sess,path)进行模型的加载

猫狗识别的代码:主要分为3个部分,

第一部分:数据的准备

第二部分:构造卷积神经网络,进行模型的训练

第三部分:使用saver.restore加载训练好的参数,进行模型的预测。

第一部分:数据的准备,构建read_train_data函数

第一步:输入的参数是文件的地址,图片的大小(进行图像的矩阵变换),标签,验证集的比例

第二步:对构造一个类dataset,用于存储训练集和验证集

第三步:对标签进行循环,对输入的文件与标签值进行拼接,获得图片文件的地址,使用glob.glob获得每张图片的地址。

第四步:循环图片地址,读入图片

第一步:使用cv2.imread()读入图片

第二步:使用cv2.resize(img,(img_size,img_size),0,0,cv2.Inter)进行图片的维度变换

第三步:使用.astype('float32')对图片进行数据类型的转换

第四步:使用np.multiply(img,1.0/255.0)进行图片数值归一化操作,并将图片加到列表中

第五步:使用np.zeros(num_classes)构造标签的零矩阵

第六步:使用index=classes.index(filed)获得标签值对应的索引,label[index]=1将索引位置赋值为1

第七步:将标签加到列表中

第八步:使用os.path.basename(file)获得图片的名字,添加到列表中,获得标签的名字,添加到列表中

第五步:对图片和标签使用np.array转换为数组类型,并返回图片,标签,名字,类别名

第六步:使用sklearn.utils中的shuffle,对图片,标签,名字和类别名进行清洗

第七步:使用val_size,验证集的比例对训练集和验证集进行分割

第八步:创建类别DataSet,实例化dataset.train和dataset.val,创建.next_batch函数,

第九步:next_batch函数说明:使用一个变量self._epoch_index对start和end进行递增循环,如果end>self._num_image,将start置为0,self._epoch_index置为batch_size。

代码:dataset.py

第一步:参数设置,一二三层卷积的大小和个数,以及全连接层的隐藏层的个数

第二步:使用tf.placeholder设置初始的输入参数x和y_pred,并命名为x和y_pred,使用np.argmax获得预测的索引值

第三步:构建生成卷积过程中参数的函数,tf.Variable(tf.truncate_normal(shape,stddev=0.05))

第四步:构建进行卷积的函数,使用tf.nn.conv2(x,w,stride=[1,2,2,1],padding='SAME'),再加上偏置项b,使用激活层tf.nn.relu构建,使用tf.nn.max_pool构建池化层

第五步:构建进行维度变换的函数,用于进行第一次全连接层的卷积到全连接的维度变换,使用image.get_shape()[1:4].num_elements获得后3个维度的个数之和,即乘积

第六步:构造进行全连接的函数,使用tf.matmul构造全连接函数,这里的话,需要使用tf.nn.dropout进行dropout防止过拟合

第七步:开始进行卷积过程

第一步:第一层卷积

第二步:第二层卷积

第三步:第三次卷积

第四步:第一次全连接,使用conv.get_shape[1:4].num_elements获得维度,构造参数

第五步:第二次全连接

第八步:y_pred=tf.nn.softmax构造y_pred,使用tf.argmax(y_pred,1)输出索引值

第九步:使用tf.nn.softmax_logits构造损失值loss,logits=score,labels=y_true

第十步:使用tf.train.Adaoptimer().minimize自适应梯度下降降低损失值

第十一步:使用tf.equal(y_pred_cls,y_true_cls),tf.reduce_mean构造准确率

第十二步:构建train函数,开始进行训练,首先使用data.train.next_batch获得batch训练样本,使用sess.run训练trainopt降低损失值,进行参数的训练

第十三步:每一个epoch值,获得train的batch,获得val_batch,对训练集和验证集的准确率进行展示

代码:train.py

第三部分:进行模型的预测

第一步:图片的输入,对于输入的图片需要进行与训练样本输入时相同的处理

第一步:使用cv2.imread()进行样本的读取

第二步:使用cv2.resize进行图片的维度变换

第三步:.astype对样本的类型进行变换

第四步:使用np.multipy对样本进行归一化操作

第五步:将图片的维度进行变换,因为是一张图片,维度变化为[1,60,60,3]

第二步:将训练好的模型进行加载

第一步:构建sess=tf.Session()第二步:使用saver=tf.train.import_meta_graph加载模型的meta

第三步:使用saver.restore()加载模型的ckpt-3750

第四步:graph=tf.get_default_graph()获得参数结构图

第五步:使用graph.get_tensor_by_name('y_pred:0')获得预测y_pred

第五步:使用graph.get_tensor_by_name('x:0')获得输入x

第六步:使用graph.get_tensor_by_name('y_pred:0')获得输入标签y_true

第七步:使用np.zeros((1,2))构造输入值得标签

第八步:使用sess.run(y_pred,feed_dict={x:x_batch,y_pred:y_test_img})进行结果的预测

第九步:使用tf.argmax获得标签的索引,使用标签名获得最终的预测结果

THE END
1.每日冷知识你知道为什么猫总是能优雅地落地吗?这种能力被称为“翻正反射”,是猫科动物的标志性本领。当猫从高处掉落时,它会迅速调整身体,确保脚先着地。这一动作依赖于猫灵敏的前庭系统和灵活的骨骼结构。 猫的前庭系统位于内耳中,可以感知身体的方向和重力。当猫感受到失去平衡时,前庭系统会向大脑发送信号,帮助它快速判断方...https://www.jianshu.com/p/1ac8de729c88
2.嘲设计包括色彩气氛图平面坐标图()景物结构分解图。场景设计包括色彩气氛图、平面坐标图、()、景物结构分解图。 A.侧面图B.底面图C.透视图D.立体鸟瞰图 参考答案: 进入题库练习 查答案就用赞题库小程序 还有拍照搜题 语音搜题 快来试试吧 无需下载 立即使用 你可能喜欢 单项选择题 下列选项中是日本动画导演押井守的代表作的是() A.《猫的报恩》B.《...https://m.ppkao.com/tiku/shiti/f08ac9335be649d48fbff2d6001b4420.html
3.大众宝来1.6正时分解图怎么看总之看懂正时分解图需要对发动机结构有一定了解操作时如果没经验或不确定最好找专业技术人员帮忙以免操作不当造成损坏。 大众宝来 1.6 自动 13 款怎么样 大众宝来 1.6 自动 13 款整体表现有优点也有不足。 优点方面 油耗低是比较突出的一点比如在磨合期跑高速能达到 5 个油左右国道 6 个左右综合平均油耗 8 个左...https://m.pcauto.com.cn/baike/558098/
4.「猫」字笔顺详解,动画演示,字帖下载猫字怎么写?「猫」字的笔顺分解图 第1画:丿 撇 第2画:? 弯钩 第3画:丿 撇 第4画:一 横 第5画:丨 竖 第6画:丨 竖 第7画:丨 竖 第8画: 横折 第9画:一 横 第10画:丨 竖 第11画:一 横 「猫」字的基本信息 拼音[māo][máo] 汉字结构左右结构 ...https://bishun.ivtool.com/9518.htm
5.Java架构师学习路线思维导图模板Java架构师学习路线图 Java架构师学习路线包括以下几个方面:首先,学习Java基础知识,如语法、集合、多线程等;其次,掌握主流框架,如Spring、MyBatis、Hibernate等;再次,熟悉数据库技术,如MySQL、Oracle等;然后,了解前端技术,如HTML、CSS、JavaScript等;此外,还需要学习设计模式、数据结构和算法等计算机科学基础知识;最后,通...https://www.processon.com/view/64eedd1ef0d32449d637c143
1.欧拉芭蕾猫维修手册电路图及常见故障排除方法为了方便用户了解欧拉芭蕾猫的内部结构和故障排除方法,我们在本文中提供了欧拉芭蕾猫维修手册电路图,并将详细介绍常见的故障排除方法。 欧拉芭蕾猫电路图 以下是欧拉芭蕾猫维修手册电路图,用户可根据图示来了解和修复可能出现的问题: 欧拉芭蕾猫维修手册 如果您遇到电源线断开的问题,您可以首先检查电源线是否与插座连接良...https://www.qcwxb.cn/article/28675.html
2.VisionTransformer必读系列之图像分类综述(二):Attentionbased注意:文中涉及到的思维导图,可以通过https://github.com/open-mmlab/awesome-vit下载。 1Transformer 论文题目: Attention is All You Need 论文地址:https://arxiv.org/abs/1706.03762 Transformer 结构是 Google 在 2017 年为解决机器翻译任务(例如英文翻译为中文)而提出,从题目中可以看出主要是靠 Attention 注意...https://blog.csdn.net/qq_39967751/article/details/125021505
3.相册详情:猫身体结构图打开App 猫 身体结构图 12 / 14 性别辨认 猫咪臀部有两个洞洞,上面是粑粑出口(肛门),下面的是嘘嘘出口(生殖器,即男猫之JJ所在)。根据两洞间距判断性别。间距在1厘米左右的,是女生;间距在2厘米以上的,是男生——大间距是蛋蛋生长所需。 实例说明见下图 89 28 加上去 ...https://m.douban.com/photos/photo/665782384/
4.软考高级架构师:数据库案例篇ER图和数据流图从数据流图(DFD)转换为实体关系图(ER图)是一个重要的步骤,可以帮助将系统的动态流程转换为静态的数据模型。以下是一些经验和步骤,帮助你完成这一过程: 1. 理解数据流图 识别进程:进程表示系统中的功能或操作。 识别数据存储:数据存储是数据被保存的地方。 识别外部实体:外部实体是与系统交互的外部来源或接收者。https://cloud.tencent.com/developer/article/2421170
5.服装专业建设要求学生掌握软件打版界面下万能笔工具的使用方法及技巧,能完全掌握万能笔模式下的绘制、捕捉、修改三大功能,并能利用该工具完成服装结构图的基本绘制及操作。 2、重点、难点分析 重点:万能笔模式下的绘制、捕捉、修改三大功能 难点:万能笔模式下的修改功能包括左键框选和右键点选两部分组成 ...https://yyys.wbu.edu.cn/2013/0617/c2499a7000/page.htm
6.小小班《走路》音乐教案(通用12篇)1、播放课件(图随音乐出示),完整欣赏歌曲。 2、再次完整欣赏歌曲,随音乐拍击节奏,熟悉旋律及歌词 3、根据歌词边提问边引导幼儿练习小动物走路的动作。 (1)歌曲里是怎样唱小鹿走路的?(跳跳跳)引导幼儿有节奏的练习(小鹿走路跳跳跳)的动作。 (2)歌曲里是怎样唱小鸭子走路的?(摇摇摇)引导幼儿有节奏的练习(小鸭子...https://www.ruiwen.com/doc/415886166.html
7.课程Python画图示例-机器猫、小猪佩奇、爱心树 康俊民 第四章 程序设计方法 ● 4.1 什么是程序 康俊民 ● 4.2 程序设计的流程 康俊民 ● 4.3 一种简单的程序设计方法— —IPO 康俊民 第五章 程序设计流程图 ● 5.1 程序流程图的概念 康俊民 ● 5.2 顺序结构流程图 康俊民 ● 5.3 选...https://higher.smartedu.cn/course/6439d4c6af1f1b5d3ed16e20