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

相关推荐
快乐的钢镚子2 小时前
【leetcode hot 100】49.字母异位词分组
python·leetcode
明道源码2 小时前
Kotlin Multiplatform 跨平台方案解析以及热门框架对比
开发语言·kotlin·cocoa
fie88892 小时前
C#实现连续语音转文字
开发语言·c#
honeysuckle_luo3 小时前
RandLA-net-pytorch 复现
人工智能·pytorch·python
SunnyDays10114 小时前
Python 高效实现 Excel 与 TXT 文本文件之间的数据转换
python·excel转txt·文本转excel·excel转文本·txt转excel
一念&4 小时前
每日一个C语言知识:C 头文件
c语言·开发语言·算法
硬件人某某某5 小时前
python基于卷积神经网络的桥梁裂缝检测系统(django),附可视化界面,源码
python·cnn·django
DARLING Zero two♡5 小时前
仓颉GC调优参数:垃圾回收的精密控制艺术
开发语言·仓颉
今日说"法"5 小时前
Rust探秘:所有权转移在函数调用中的表现
开发语言·后端·rust
java1234_小锋5 小时前
PyTorch2 Python深度学习 - 自动微分(Autograd)与梯度优化
开发语言·python·深度学习·pytorch2