深度学习-图像评分实验(TensorFlow框架运用、读取处理图片、模型建构)
目录
0、实验准备
①实验环境
②需要下载的安装包
③注意事项(很关键,否则后面内容看不懂)
④容易出现的问题
1、查看数据并读取数据。
2、PIL库里的Image包进行读取(.resize更改图片尺寸,并将原始数据归一化处理,用索引方式进行提取)
3、切分实验数据集(train_test_split进行切分)
4、线性回归构建模型。(Dense、Flatten、Input和Model模块。利用Model类方法构建模型)
5、模型编译。利用keras的compile实现编译过程
6、模型拟合。利用fit进行拟合,并观察循环过程中,参数的变化
7、模型预测。利用predict使用训练好的模型在未知的数据上做预测,得到一个预测值
8、绘制损失函数曲线变化图
9、完整代码
0、实验准备
①实验环境
python3.7.4
Spyder(anaconda3.7)
下载链接:anaconda3.7安装(清华开源软件镜像)
因为有些安装包有版本要求,最好直接下载anaconda3.7版本的Spyder直接使用。

②需要下载的安装包
一定下载安装包哈,不然运行会报错哦。

conda install pandas numpy pillow scikit-learn keras matplotlib
③注意事项(很关键,否则后面内容看不懂)
→本文提到的X变量代表各种美食图像,因变量Y表示每张图片的评分。(图片数据可以大家自己去网上找,也可以使用我给大家分享的图片材料哈,注意要改文件地址【最好全是英语命名,不要有中文,否则可能会有报错】)
→需要下载一个Y数据文件:
通过百度网盘分享的文件:实验数据(图片材料+Y数据csv文件)
链接:https://pan.baidu.com/s/1xksDeusttovDfs2ncMYOcA?pwd=6688
提取码:6688

④容易出现的问题
有些下载可能会出一点问题:版本不兼容(所以建议大家直接下载anaconda3.7,因为这个是兼容scikit-learn包的,大部分不兼容这个)、找不到文件(改文件路径!!!不要有中文!!!)
1、查看X、Y数据并读取X、Y数据。

2、针对X图片数据,利用PIL库里的Image包进行读取。利用.resize更改图片尺寸,并将原始数据归一化处理。针对Y数值数据,用索引方式进行提取。


3、切分实验数据集。利用train_test_split进行切分。

4、线性回归构建模型。用到的模块:Dense、Flatten、Input和Model模块。利用Model类方法构建模型。

5、模型编译。利用keras的compile实现编译过程。注意:三种参数值的设定。

6、模型拟合。利用fit进行拟合,并观察循环过程中,参数的变化。(这个最好多模拟几次,不低于六次,不然精确度不高)



7、模型预测。利用predict使用训练好的模型在未知的数据上做预测,得到一个预测值。

8、绘制损失函数曲线变化图。

9、完整代码
import pandas as pd
MasterFile=pd.read_csv("E:\All_demo\DEEp\FoodScore.csv")
print(MasterFile.shape)
MasterFile[0:5]
MasterFile.hist()import numpy as np
FileNames=MasterFile['ID']
N=len(FileNames)
Y=np.array(MasterFile['score']).reshape([N,1])from PIL import Image
IMSIZE=128
X=np.zeros([N,IMSIZE,IMSIZE,3])
for i in range(N): MyFile=FileNames[i]Im=Image.open(r'E:\All_demo\DEEp\data_foodscore/'+MyFile+'.jpg')Im=Im.resize([IMSIZE,IMSIZE])Im=np.array(Im)/255X[i,]=Imfrom matplotlib import pyplot as plt
plt.figure()
fig,ax=plt.subplots(2,5)
fig.set_figheight(7.5)
fig.set_figheight(15)
ax=ax.flatten()
for i in range(10):ax[i].imshow(X[i,:,:,:])ax[i].set_title(np.round(Y[i],2))from sklearn.model_selection import train_test_split
X0,X1,Y0,Y1=train_test_split(X,Y,test_size=0.5,random_state=0)from keras.layers import Dense,Flatten,Input
from keras import Model
input_layer=Input([IMSIZE,IMSIZE,3])
x=input_layer
x=Flatten()(x)
x=Dense(1)(x)
output_layer=x
model=Model(input_layer,output_layer)
model.summary()from keras.optimizers import Adam
model.compile(loss='mse',optimizer=Adam(lr=0.001),metrics=['mse'])history=model.fit(X0,Y0,validation_data=[X1,Y1],batch_size=100,epochs=100)MyPic=Image.open("E:\All_demo\DEEp\data_foodscore\pic1.jpg")
MyPic
MyPic=MyPic.resize((IMSIZE,IMSIZE))
MyPic=np.array(MyPic)/255
MyPic=MyPic.reshape((1,IMSIZE,IMSIZE,3))
model.predict(MyPic)import matplotlib.pyplot as plt
plt.plot(history.history['loss'], label='train loss')
plt.plot(history.history['val_loss'], label='validation loss')
plt.title('Model Loss')
plt.ylabel('Loss')
plt.xlabel('Epoch')
plt.legend()
plt.show()
相关文章:
深度学习-图像评分实验(TensorFlow框架运用、读取处理图片、模型建构)
目录 0、实验准备 ①实验环境 ②需要下载的安装包 ③注意事项(很关键,否则后面内容看不懂) ④容易出现的问题 1、查看数据并读取数据。 2、PIL库里的Image包进行读取(.resize更改图片尺寸,并将原始数据归一化处…...
羲和数据集收集器0.9
为了进一步完善代码,增强其文字抓取能力和文件读取能力,我们做以下改进: 增强 DOCX 文档的文本提取:不仅提取段落和文本框内容,还提取表格中的文本。 增强 PDF 文档的文本提取:不仅提取页面文本和注释,还提取表格中的文本。 优化文本清理:确保文本清理更加彻底,避免不…...
哈尔滨等保测评常见误区破解:避免陷入安全盲区
在当今信息化社会,网络安全已成为各行各业不可忽视的重要议题。等级保护(简称“等保”)作为我国网络安全的基本制度,旨在通过划分不同安全保护等级,对信息系统实施分等级的安全保护。然而,在实施等保测评的…...
Python学习------第四天
Python的判断语句 一、布尔类型和比较运算符 二、 if语句的基本格式 if语句注意空格缩进!!! if else python判断语句的嵌套用法:...
【Django】配置文件 settings.py
【Django】配置文件 settings.py 和Flask框架不同,Django框架项目在创建的时会默认生成配置文件settings.py,在深入学习Django框架前,我们先简单了解settings.py文件内非注释代码, from pathlib import Path BASE_DIR Path(__f…...
量化交易系统开发-实时行情自动化交易-Okex K线数据
19年创业做过一年的量化交易但没有成功,作为交易系统的开发人员积累了一些经验,最近想重新研究交易系统,一边整理一边写出来一些思考供大家参考,也希望跟做量化的朋友有更多的交流和合作。 接下来聊聊基于Okex交易所API获取K线数…...
【基于轻量型架构的WEB开发】课程 12.5 数据回写 Java EE企业级应用开发教程 Spring+SpringMVC+MyBatis
12.5 数据回写 12.5.1 普通字符串的回写 接下来通过HttpServletResponse输出数据的案例,演示普通字符串的回写,案例具体实现步骤如下。 1 创建一个数据回写类DataController,在DataController类中定义 showDataByResponse()方法ÿ…...
apache-seata-2.1.0 AT模式使用篇(配置简单)
最近在研究seata的AT模式,先在本地搭建了一个演示demo,看看seata是如何使用的。在网上搜的demo,配置相对来说都比较多。我最终搭建的版本,配置较少,所以写篇文章分享下,希望能帮到对seata感兴趣的小伙伴。先…...
(金蝶云星空)客户端追踪SQL
快捷键 ShitfCtryAltM 点击开始、最后操作功能、然后查看报告 SQL报告...
OAK相机:纯视觉SLAM在夜晚的应用
哈喽,OAK的朋友们,大家好啊,今天这个视频主要想分享一下袁博士团队用我们的OAK相机产出的新成果 在去年过山车SLAM的演示中,袁博士团队就展示了纯视觉SLAM在完全黑暗的环境中的极高鲁棒性。 现在袁博士团队进一步挖掘了纯视觉的潜…...
发送方确认
在使用RabbitMQ的时候,可以通过消息持久化来解决因为服务器的异常而导致的消息就是,但是还有一个问题,当消息的生产者将消息发送出去之后,消息到底有没有正确地到达服务器呢?如果消息在到达服务器之前已经丢失…...
如何使用HighBuilder前端开发神器
一,前言 前端开发是网页和应用程序设计与开发中的一个重要分支,直接涉及用户界面的构建和用户与网页的交互。前端是用户在浏览器中看到的部分,负责为用户提供良好的体验。 二,前段介绍 1. 前端的组成 前端开发主要由三个核心技…...
发现了NitroShare的一个bug
NitroShare 是一个跨平台的局域网开源网络文件传输应用程序,它利用广播发现机制在本地网络中找到其他安装了 NitroShare 的设备,从而实现这些设备之间的文件和文件夹发送。 NitroShare 支持 Windows、macOS 和 Linux 操作系统。 NitroShare允许我们为…...
如何关闭 Ubuntu22.04 LTS 的更新提醒
引言 众所周知,Ubuntu 的软件更新和版本更新提醒是又多又烦,如果不小心更新到了最新的 Ubuntu 还可能面临各种各样的问题,这里提供一个解决方法 步骤 首先按照下面步骤打开 Software & Updates 然后按照下面步骤依次点击 最后关闭即可…...
美术资源规范
很多项目都没有重视资源规范,而是不断追求更高的运行效率。然而资源规范在项目中是非常重要的,资源规范才是高效运行的前提。 在有的项目中,一个人物模型几万个面、一个建筑模型就几十万个面,贴图也不规范,1024、2048…...
UE5.4 PCG 获取地形Layer
使用AttributeFilter:属性过滤器 节点 设置地形Layer名称和权重 效果:...
用 cURL 控制 OpenSIPS3.4
opensips-cli -x mi reload_routes,重读脚本路由opensips-cli -x mi ds_list,就是 dispatcher list 的缩写,简单明了opensips-cli -x mi ds_reload,修改 OpenSIPS 数据库的 dispatcher 表之后,用此命令读到内存opensip…...
【LuatOS】基于WebSocket的同步请求框架
0x00 缘起 由于使用LuatOS PC模拟器发起快速且海量HTTP请求(1000 次/秒)时,会耗尽PC的TCP连接资源,而无法进行继续进行访问请求。故使用WebSocket搭建类似于HTTP的“同步请求相应”的通信框架,以实现与HTTP类似的功能…...
架构师考试系列(8)论文专题:信息系统安全设计
摘要 2021年4月,我公司承接了一款健康养老系统项目,旨在提供以健康养老为核心的管理平台。本文探讨了如何在系统开发中贯彻安全优先原则,保障系统的安全性和保密性。系统包括健康档案、照护计划、服务审计、健康状况跟踪、费用管理等功能模块。我作为系统架构设计师,负责了…...
浙大一附院就医:分享给大家工作久了关节疼的就医经验,腱鞘炎
症状描述:日常生活不影响,但左手手腕往前或者往后扭曲力度过大时会有痛感。 医嘱详情:腱鞘炎,可能是工作键盘打字久了导致,开了三盒药贴,一盒三片,一共9片,另外再买一个比较硬的护腕…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...
Pinocchio 库详解及其在足式机器人上的应用
Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库,专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性,并提供了一个通用的框架&…...
【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)
LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 题目描述解题思路Java代码 题目描述 题目链接:LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...
二维FDTD算法仿真
二维FDTD算法仿真,并带完全匹配层,输入波形为高斯波、平面波 FDTD_二维/FDTD.zip , 6075 FDTD_二维/FDTD_31.m , 1029 FDTD_二维/FDTD_32.m , 2806 FDTD_二维/FDTD_33.m , 3782 FDTD_二维/FDTD_34.m , 4182 FDTD_二维/FDTD_35.m , 4793...
怎么开发一个网络协议模块(C语言框架)之(六) ——通用对象池总结(核心)
+---------------------------+ | operEntryTbl[] | ← 操作对象池 (对象数组) +---------------------------+ | 0 | 1 | 2 | ... | N-1 | +---------------------------+↓ 初始化时全部加入 +------------------------+ +-------------------------+ | …...
Redis上篇--知识点总结
Redis上篇–解析 本文大部分知识整理自网上,在正文结束后都会附上参考地址。如果想要深入或者详细学习可以通过文末链接跳转学习。 1. 基本介绍 Redis 是一个开源的、高性能的 内存键值数据库,Redis 的键值对中的 key 就是字符串对象,而 val…...
P10909 [蓝桥杯 2024 国 B] 立定跳远
# P10909 [蓝桥杯 2024 国 B] 立定跳远 ## 题目描述 在运动会上,小明从数轴的原点开始向正方向立定跳远。项目设置了 $n$ 个检查点 $a_1, a_2, \cdots , a_n$ 且 $a_i \ge a_{i−1} > 0$。小明必须先后跳跃到每个检查点上且只能跳跃到检查点上。同时࿰…...
