原型网络Prototypical Network的python代码逐行解释,新手小白也可学会!!由于工作量大,准备整5个系列完事,-----系列1

文章目录


一、数据集展示



二、代码第一步--导入库与读入训练集和测试集解释

1.原始代码如下

python 复制代码
import os
import matplotlib.image as mpimg
import numpy as np
import csv
os.chdir('E:/重要文档/风电课题相关论文/程序代码/图片分类')
def load_data():
	#验证集
	labels_trainData = {}
	label = 0
	for file in os.listdir('./data/images_background'):
		for dir in os.listdir('./data/images_background/' + file):
			labels_trainData[label] = []
			data = []
			for png in os.listdir('./data/images_background/' + file +'/' + dir):
				image_np = mpimg.imread('./data/images_background/' + file +'/' + dir+'/' +png)
				image_np.astype(np.float64)
				data.append(image_np)
			labels_trainData[label] = np.array(data)
			label += 1
	#测试集
	labels_testData = {}
	label = 0
	for file in os.listdir('./data/images_evaluation'):
		for dir in os.listdir('./data/images_evaluation/' + file):
			labels_testData[label] = []
			data = []
			for png in os.listdir('./data/images_evaluation/' + file +'/' + dir):
				image_np = mpimg.imread('./data/images_evaluation/' + file +'/' + dir+'/' +png)
				image_np.astype(np.float64)
				data.append(image_np)
			labels_testData[label] = np.array(data)
			label += 1
	return labels_trainData,labels_testData

2.代码解释

import os:导入Python的os库。这个库提供了很多与操作系统交互的功能,比如访问文件系统、环境变量等。

import matplotlib.image as mpimg:导入Matplotlib库的image模块,并给它取了一个简短的别名mpimg。Matplotlib是一个用于绘制图表和图像的Python库。

import numpy as np:导入NumPy库,并给它取了一个简短的别名np。NumPy是一个用于处理数组和矩阵的Python库,广泛应用于科学计算。

import csv:导入Python内置的csv库。这个库提供了用于读写CSV(逗号分隔值)文件的功能。

这些库都是Python进行数据处理、科学计算和数据可视化等任务时常用的库。

这是一个Python脚本,它用于从特定文件夹中加载图像数据,并将这些数据组织为训练集和测试集的形式。以下是每一行代码的解释:

os.chdir('E:/重要文档/风电课题相关论文/程序代码/图片分类'):这行代码将当前工作目录改变为指定的路径,即'E:/重要文档/风电课题相关论文/程序代码/图片分类'。

def load_data()::定义一个名为load_data的函数,该函数用于加载数据。

labels_trainData = {}:初始化一个空字典,用于存储训练集的标签和对应的图像数据。

label = 0:初始化一个变量label为0,该变量用于表示当前处理的类别标签。

for file in os.listdir('./data/images_background')::遍历文件夹'./data/images_background'中的所有文件。

for dir in os.listdir('./data/images_background/' + file)::对于每个文件,遍历其子文件夹。

labels_trainData[label] = []:在字典labels_trainData中以当前的标签值为键创建一个空列表。

for png in os.listdir('./data/images_background/' + file +'/' + dir)::对于每个子文件夹,遍历其中的所有png图像文件。

image_np = mpimg.imread('./data/images_background/' + file +'/' + dir+'/' +png):使用mpimg库的imread函数读取图像文件,返回一个numpy数组表示的图像。

image_np.astype(np.float64):将图像数据转换为浮点数类型。

data.append(image_np):将处理过的图像数据添加到之前创建的data列表中。

labels_trainData[label] = np.array(data):将data列表转换为numpy数组,并存储到labels_trainData字典中对应的列表中。

label += 1:更新类别标签的值。

类似的,下面的代码用于处理测试集的数据。它使用与处理训练集相同的结构,但读取的文件夹路径不同。
return labels_trainData, labels_testData:函数返回包含训练集和测试集数据的两个字典。


总结

这段代码的主要目的是从一个特定的文件夹中加载图像数据,并将它们存储为numpy数组,以供后续的深度学习模型训练使用。

相关推荐
细节处有神明4 分钟前
Jupyter 中实现交互式图表:ipywidgets 从入门到部署
ide·python·jupyter
小小码农一只5 分钟前
Python 爬虫实战:玩转 Playwright 跨浏览器自动化(Chromium/Firefox/WebKit 全支持)
爬虫·python·自动化
程高兴10 分钟前
遗传算法求解冷链路径优化问题matlab代码
开发语言·人工智能·matlab
wow_DG14 分钟前
【C++✨】多种 C++ 解法固定宽度右对齐输出(每个数占 8 列)
开发语言·c++·算法
CHEN5_0242 分钟前
【Java基础】反射,注解,异常,Java8新特性,object类-详细介绍
java·开发语言
Cx330❀1 小时前
【数据结构初阶】--排序(四):归并排序
c语言·开发语言·数据结构·算法·排序算法
云间月13141 小时前
飞算JavaAI智慧文旅场景实践:从景区管理到游客服务的全链路系统搭建
java·开发语言
深盾安全1 小时前
Python脚本安全防护策略全解析(上)
python
杜子不疼.1 小时前
《Python学习之使用标准库:从入门到实战》
开发语言·python·学习
意疏1 小时前
【C语言篇】srand函数的详细用法解析
c语言·开发语言