网站建设网络推广外包服务商,网站sem托管,定安免费建站公司,网站建设主要学什么软件1. 前言 
之前的图像分类任务可视化#xff0c;都是在train脚本里#xff0c; 用torch中dataloader将图片和类别加载#xff0c;然后利用matplotlib库进行可视化。 
如这篇文章中#xff1a;CNN 卷积神经网络对染色血液细胞分类(blood-cells) 在分类任务中#xff0c;必定…1. 前言 
之前的图像分类任务可视化都是在train脚本里 用torch中dataloader将图片和类别加载然后利用matplotlib库进行可视化。 
如这篇文章中CNN 卷积神经网络对染色血液细胞分类(blood-cells) 在分类任务中必定经历过图像预处理缩放啊、随即裁剪啊之类的可视化效果不太明显 本章将从数据角度出发直接根据数据目录将图像可视化随机展示所有图片的四张图片可视化后并且保存 目标检测的可视化可以参考 
关于目标检测任务中YOLO(txt格式)标注文件的可视化  
关于目标检测任务中XML(voc格式)标注文件的可视化 2. 根据目录可视化 无需类别的json文件 
目录如下代码应该data同一路径 2.1 代码介绍 
root 传入的是文件夹路径也就是多个类别文件夹的上一级目录 将所有图像保存为了知道图片的类别需要把图片的父目录保存。为了方便这里生成一个列表文件key 是目录类别value 是相应的图像路径 展示的代码很简单生成随机数将列表的文件提取出来然后展示四张就行了 2.2 可视化结果 
可视化结果 代码会在当前目录生成刚刚可视化展示的图片 2.3 完整代码 
如下 
import os
import matplotlib.pyplot as plt
import random
from PIL import Imagedef main(path):classes  [i for i in os.listdir(path)]         # [cat, dog]# 将所有图片按照 类别:路径 字典形式保存images_path  []  # [{cat: ./data/train\\cat\\Baidu_0000.jpeg}, {cat: ./data/train\\cat\\Baidu_0002.jpeg}]for cla in classes:for i in os.listdir(os.path.join(path,cla)):dic  {}  # 类别:图像路径img_path  os.path.join(path,cla,i)dic[cla]  img_path             # {cat: ./data/train\\cat\\Baidu_0000.jpeg}images_path.append(dic)# 随机展示4张图像plt.figure(figsize(12,8))for i in range(4):r  random.randint(0,len(images_path)-1)      # 生成随机数label,im_path list(images_path[r].keys())[0],list(images_path[r].values())[0]#  cat , ./data/train\cat\Baidu_0049.jpegim  Image.open(im_path)plt.subplot(2,2,i1)plt.title(label)plt.imshow(im)plt.savefig(show.png)     # 保存图片plt.show()if __name__  __main__:root  ./data/train       # 传入目录main(pathroot)3.生成类别json字典文件 
图像分类任务有的没有提供类别的字典文件这里也记录一下如何生成json文件 可以通过下面代码生成 
import os
import jsondef main(path):classes  [i for i in os.listdir(path)]  # [cat, dog]labels  {}         # 类别的字典文件for index,name in enumerate(classes):labels[index]  namelabels  json.dumps(labels,indent4)with open(./class_indices.json,w) as f:         # 保存成json文件f.write(labels)if __name__  __main__:root  ./data/train  # 传入目录main(pathroot)结果如下 或者直接新建json文件然后对照目录按照上面的方式输入也行