原型网络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数组,以供后续的深度学习模型训练使用。

相关推荐
CodeClimb5 分钟前
【华为OD-E卷-木板 100分(python、java、c++、js、c)】
java·javascript·c++·python·华为od
夜幕龙13 分钟前
iDP3复现代码数据预处理全流程(二)——vis_dataset.py
人工智能·python·机器人
CT随16 分钟前
Redis内存碎片详解
java·开发语言
anlog25 分钟前
C#在自定义事件里传递数据
开发语言·c#·自定义事件
奶香臭豆腐38 分钟前
C++ —— 模板类具体化
开发语言·c++·学习
晚夜微雨问海棠呀1 小时前
长沙景区数据分析项目实现
开发语言·python·信息可视化
graceyun1 小时前
C语言初阶习题【9】数9的个数
c语言·开发语言
cdut_suye1 小时前
Linux工具使用指南:从apt管理、gcc编译到makefile构建与gdb调试
java·linux·运维·服务器·c++·人工智能·python
dundunmm1 小时前
机器学习之scikit-learn(简称 sklearn)
python·算法·机器学习·scikit-learn·sklearn·分类算法
古希腊掌管学习的神1 小时前
[机器学习]sklearn入门指南(1)
人工智能·python·算法·机器学习·sklearn