深度学习入门-03

news2024/11/16 19:24:55

PS:基于小土堆视频学习https://www.bilibili.com/video/BV1hE411t7RN?p=6&vd_source=22926f91481026cd10af799bb45e448b

1、Dateset
Dateset就是我们的目标数据,告诉我们如何获取数据,距离:从多种类型的数据中,提取某一类数据,并且可对数据定义编号;
(提供一种数据获取方式及其label)

2、DateLoader
DateLoader:可以对一堆数据进行打包,为网络提供不同的数据形式

神经网络会对数据迭代多次,通常情况的下,数据集分:验证数据集和训练数据集;

from torch.utils.data import Dataset
import cv2
from PIL import Image  #需要注意区分大小写
import os #获取到所有图片的地址

class MyDate(Dataset): #继承Dataset类别

    def __init__(self,root_dir,label_dir):   #初始化,为整个class提供全局变量
        self.root_dir = root_dir
        self.label_dir = label_dir
        self.path = os.path.join(self.root_dir,self.label_dir)
        self.img_path = os.listdir(self.path)
        #获取蚂蚁这个文件夹中的所有图片地址

    def __getitem__(self, idx): #获取其中的每一个
        img_name = self.img_path[idx]
        img_item_path = os.path.join(self.root_dir,self.label_dir,img_name)   #每一个图片的位置
        img = Image.open(img_item_path)
        label = self.label_dir
        return img,label

    def __len__(self):  #确定这个数据集到底有多长
        return len(self.img_path)


root_dir = "dataset/train"
ants_label_dir = "ants"
bees_label_dir = "bees"
ants_dataset = MyDate(root_dir,ants_label_dir)
bees_dataset = MyDate(root_dir,bees_label_dir)

train_dataset = ants_dataset+bees_dataset
#将2个数据集合并为一个,在真实训练,可以用与数据集不足的补充

基于控制台检验

C:\Anaconda3\envs\pytorch_test\python.exe "C:/Program Files/JetBrains/PyCharm Community Edition 2023.1/plugins/python-ce/helpers/pydev/pydevconsole.py" --mode=client --host=127.0.0.1 --port=4406 
import sys; print('Python %s on %s' % (sys.version, sys.platform))
sys.path.extend(['H:\\Python\\Test'])
Python 3.10.14 | packaged by Anaconda, Inc. | (main, May  6 2024, 19:44:50) [MSC v.1916 64 bit (AMD64)]
Type 'copyright', 'credits' or 'license' for more information
IPython 8.25.0 -- An enhanced Interactive Python. Type '?' for help.
PyDev console: using IPython 8.25.0
Python 3.10.14 | packaged by Anaconda, Inc. | (main, May  6 2024, 19:44:50) [MSC v.1916 64 bit (AMD64)] on win32
from torch.utils.data import Dataset
import cv2
from PIL import Image  #需要注意区分大小写
import os #获取到所有图片的地址
class MyDate(Dataset): #继承Dataset类别
    def __init__(self,root_dir,label_dir):   #初始化,为整个class提供全局变量
        self.root_dir = root_dir
        self.label_dir = label_dir
        self.path = os.path.join(self.root_dir,self.label_dir)
        self.img_path = os.listdir(self.path)
        #获取蚂蚁这个文件夹中的所有图片地址
    def __getitem__(self, idx): #获取其中的每一个
        img_name = self.img_path[idx]
        img_item_path = os.path.join(self.root_dir,self.label_dir,img_name)   #每一个图片的位置
        img = Image.open(img_item_path)
        label = self.label_dir
        return img,label
    def __len__(self):  #确定这个数据集到底有多长
        return len(self.img_path)
root_dir = "dataset/train"
ants_label_dir = "ants"
ants_dataset = MyDate(root_dir,ants_label_dir)
ants_dataset[0]
Out[3]: (<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=768x512>, 'ants')
img,label = ants_dataset[0]
img.show()
img,label = ants_dataset[6]
img.show()
root_dir = "dataset/train"
ants_label_dir = "ants"
bees_label_dir = "bees"
ants_dataset = MyDate(root_dir,ants_label_dir)
bees_dataset = MyDate(root_dir,bees_label_dir)
img,label = bees_dataset[6]
img.show()
train_dataset = ants_dataset+bees_dataset
len(ants_dataset)
Out[12]: 124
len(bees_dataset)
Out[13]: 121
len(train_dataset)
Out[14]: 245
img,label = train_dataset[124]
img.show()
img,label = train_dataset[123]
img.show()

可以发现展示不同的图片,124是蜜蜂,123是蚂蚁

transform在dataset中很常用,他主要用于图像的变换,对图像同一个尺寸

3、tensorBoard的使用,在训练模型中很有用
在这里插入图片描述

可以通过他,看他的loss的降低情况,模型是不是符合预期,他的训练结果是不是可以。
使用tensorBoard对模型训练很有用,通过他可以有效的看到模型的输出

from torch.utils.tensorboard import SummaryWriter
writer =SummaryWriter("logs")

# writer.add_image()
for i in range(100):
    writer.add_scalar("y=x",i,i)
writer.close()

运行后会出现一个logs的文件夹,里面是tensorboard的事件文件
在这里插入图片描述

然后再pycharm的local里面打开,就可以查看事假:

tensorboard --logdir logs

在这里插入图片描述
显示当前的端口是6006;
但是为了避免端口冲突,可以指定端口

 tensorboard --logdir logs --port=6007

在这里插入图片描述
单击上述6007的网址,即可生成该图
在这里插入图片描述
修改代码为y=2x,2i
再次修改y=2x,3
i
则会出现以下现象
在这里插入图片描述
为了避免这种问题的出现,可以删除logs下面的事件;如下所示:
在这里插入图片描述
在这里插入图片描述
删除事件文件夹后,再次在本地中运行

tensorboard --logdir logs --port=6007


单击网址,即可恢复正常

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2066755.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Go语言反射入门:理解类型与值的动态操作

简介 Go 语言的反射机制是一种在运行时检查程序本身的能力&#xff0c;它允许程序在运行时动态地操作对象的类型和值。 基本概念 1.反射与类型 在静态类型语言中&#xff0c;变量的类型在编译时确定。反射允许在运行时查询和修改变量的类型信息。 2.接口与反射 Go 中的接口…

云等保安全合规解决方案

在当今数字化时代&#xff0c;云计算已成为企业数字化转型的基石&#xff0c;它不仅极大地提升了数据处理能力、降低了运营成本&#xff0c;还促进了业务模式的创新与发展。然而&#xff0c;随着云服务的广泛应用&#xff0c;云环境的安全性问题也日益凸显&#xff0c;成为制约…

Tita的OKR:研发人员的OKR

当您要建立一个以产品为中心的团队&#xff0c;并希望你的团队有一个产品的心态和时刻围绕你的客户&#xff0c;此工程研发 OKR 示例就是实现此目标的伟大方法。您将在以下文章中找到相关的技术研发 OKR 示例。 技术研发团队是任何组织中的重要组成部分&#xff0c;正确的OKR可…

U盘车载专用音乐合集 3068首 24G

包含3068首适合车载播放的音乐。 拿走的麻烦评论一下&#xff0c;感谢&#xff01;&#xff01;&#xff01; 拿走的麻烦评论一下&#xff0c;感谢&#xff01;&#xff01;&#xff01; 拿走的麻烦评论一下&#xff0c;感谢&#xff01;&#xff01;&#xff01; 链接&#…

主流短视频评论采集python爬虫(含一二级评论内容)

声明 仅用于学习交流&#xff0c;不用于其他用途 正文 随着主流短视频评论采集更新需要登录&#xff0c;由于不懈的努力&#xff0c;攻破这一难点&#xff0c;不需要登录采集作品所有评论信息 话不多说上代码看效果&#xff1a; 输入作品id: 这样就拿到评论信息了&#xff…

c++中调用函数时出现“warning C4715: “controlMode”: 不是所有的控件路径都返回值”警告的问题

调用函数时出现“warning C4715: “controlMode”: 不是所有的控件路径都返回值”警告的问题 问题描述解决方案 问题描述 如图所示&#xff0c;我的函数定义如下 在编译的时候&#xff0c;会出现如下警告 warning C4715: “controlMode”: 不是所有的控件路径都返回值 解决方案…

易通博客项目测试报告

目录 1. 项目背景1.1 测试目标 2. 项目功能3.测试分类3.1 功能测试3.2 自动化测试3.2.1自动化测试遇到的问题以及解决&#xff1a;3.2.2 自动化测试结果 3.3 性能测试 4. 基于场景性能测试下遇到的一些问题4.1 解决博客id不存在的问题&#xff1f;4.2 添加博客请求响应失败&…

[Other]-安装ruby、ascli、ascp

最近新接到这样一个需求&#xff0c;将生物原始数据上传到某中心&#xff0c;其中用到ascp命令&#xff0c;阴差阳错的装了ruby、ascli&#xff0c;这里就都一并介绍下安装方式&#xff0c;由于服务器老旧默认安装时ruby2.0&#xff0c;又 升级到2.7等引发的一系列问题&#xf…

Anaconda与conda、pip与conda的区别

Anaconda与conda、pip与conda的区别 1. 引言1.1 背景介绍1.2 文章目的 2. 什么是Anaconda&#xff1f;2.1 Anaconda简介2.2 Anaconda的优势2.3 Anaconda的安装与配置 3. 什么是Conda&#xff1f;3.1 Conda简介3.2 Conda的功能和用途3.3 Conda与Anaconda的关系 4. 什么是Pip&…

如何将精益生产目标的设定与企业财务状况相结合?

在探讨如何将精益生产目标的设定与企业财务状况相结合时&#xff0c;我们首先需要明确两者的核心要素及其相互关系。精益生产&#xff0c;起源于丰田生产方式&#xff0c;旨在通过消除浪 费、持续改进和全员参与&#xff0c;实现生产过程的最大化效率和最小化成本。而企业财务状…

NC 寻找第K大

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff0c;这篇文章男女通用&#xff0c;看懂了就去分享给你的码吧。 描述 有一个整数数…

Prometheus 和 Grafana 通过nginx-exporter监控nginx

在生产环境下&#xff0c;您已经部署了 Prometheus 和 Grafana&#xff0c;并希望通过它们来监控另一台 Ubuntu 20.04 上的 Nginx 服务。以下是配置步骤&#xff1a; 1. 安装和配置 nginx-exporter (Nginx 的 Prometheus 导出器) nginx-exporter 是 Prometheus 用来从 Nginx …

Godot《躲避小兵》实战之创建敌人

是时候创建一些玩家必须躲避的敌人了。它的行为很简单&#xff1a;怪物将随机生成在屏幕的边缘&#xff0c;沿着随机的方向直线移动。 我们将创建一个 Mob 的怪物场景&#xff0c;以便在游戏中独立实例化出任意数量的怪物。 节点设置 点击顶部菜单的“场景 -> 新建场景”…

C++初学(14)

14.1、while循环 和for循环相比&#xff0c;while循环没有初始化和更新部分&#xff0c;它只有测试条件和循环体。 while(text-condition)body首先程序计算圆括号内的测试条件&#xff08;text-condition&#xff09;表达式。如果该表达式为ture&#xff0c;则执行循环体中的…

短剧系统搭建:从零搭建高效创意内容平台教程,源码分享+正版片源授权指南

目录 一、短剧系统是什么&#xff1f; 二、短剧系统怎么搭建 技术选型 安全与性能优化 测试与部署 运营与维护 三、部分代码展示 一、短剧系统是什么&#xff1f; 短剧是一种采用单集时长15—30分钟的系列剧、集数在6集内的系列单元剧、20集内的连续剧、周播剧等多种形态…

Slowman - hackmyvm

简介 靶机名称&#xff1a;Slowman 难度&#xff1a;简单 靶场地址&#xff1a;https://hackmyvm.eu/machines/machine.php?vmSlowman 本地环境 虚拟机&#xff1a;vitual box 靶场IP&#xff08;Slowman&#xff09;&#xff1a;192.168.130.57 windows_IP&#xff1a…

用ClouDNS注册免费永久域名

ClouDNS 免费域名创建教程 ClouDNS 是一家全球知名的托管 DNS 服务供应商&#xff0c;它提供的服务包括 GeoDNS、Anycast DNS 以及带有 DDoS 防护的 DNS 等。ClouDNS 提供了免费的 DNS 托管服务&#xff0c;其中包括单播 DNS 服务器、DNS 区域、DNS 记录、邮件转发等功能&…

matlab峰值检测

峰值检测的意义 在信号处理中&#xff0c;我们常常需要寻找信号的峰值&#xff0c;对于全局最大值&#xff0c;寻找起来比较容易&#xff0c;而对于局部峰值的寻找就需要考虑更多的条件&#xff0c;例如峰值的绝对幅度以及相邻峰值之间之间的间距&#xff1b;&#xff0c;我如…

笔记小结:《利用python进行数据分析》之matplotlib入门

matplotlib入门&#xff0c;这一篇就够了&#xff01; matplotlib API入门 matplotlib的通常引入约定是&#xff1a; In [11]: import matplotlib.pyplot as plt 在Jupyter中运行%matplotlib notebook&#xff08;或在IPython中运行%matplotlib&#xff09;&#xff0c;就可…

代码随想录算法训练营第二十二天| 回溯算法理论基础 77. 组合 216.组合总和III 17.电话号码的字母组合

目录 一、回溯算法理论基础二、LeetCode 77. 组合思路C代码 二、LeetCode 216.组合总和III思路C代码 二、LeetCode 17.电话号码的字母组合思路C代码 总结 一、回溯算法理论基础 回溯法&#xff1a;回溯法是一种将问题遍历的结构抽象为树形结构&#xff0c;在解空间树种采取深度…