Pytorch个人学习记录总结 01

 目录

函数-dir()、help()

Dataset类


函数-dir()、help()

dir() 函数,打开工具箱(例如PyTorch,进一步打开某一些分隔区)

help() 函数,查看工具包中某一个工具函数的用法

(1) 查看torch工具包有哪些分割区

dir(torch)
# ['AVG', 'AggregationType', 'AnyType', 'Argument', 'ArgumentSpec', 'BFloat16Storage', 'BFloat16Tensor',...]

(2) 查看torch.cuda有哪些分隔区

dir(torch.cuda)
# ['Any', 'BFloat16Storage', 'BFloat16Tensor', 'BoolStorage', 'BoolTensor', 'ByteStorage', ...]

(3) 查看torch.cuda.is_available()有哪些分隔区

dir(torch.cuda.is_available())	# 函数后面的()去掉,效果一样
# ['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', ...]

此时发现前后都是带有两个下划线的:__这说明是规定好不可更改的,也就说明是torch.cuda.is_available不再是一个分隔区而是一个函数,因此可调用help()来查看该函数的基本作用。

help(torch.cuda.is_available) 	# 注意这后面不能跟有()# 打印结果,该函数会返回一个bool值
# Help on function is_available in module torch.cuda:
# is_available() -> bool
#     Returns a bool indicating if CUDA is currently available.

Dataset类

手写加载数据集的类:MyData。主要是要重写__init__()、__getitem__()、__len()__这3个类


get到一个小技巧,可以直接用+对两个Data类进行拼接(可用于数据集不足时,直接将两个数据集这样加起来一起使用)


new_path = os.path.join(path1,path2,...)将所有路径联合起来,返回一个整合路径(str)


file_name_list = os.listdir(path)读取path路径中的所有文件名称,返回一个名称列表(list)

from torch.utils.data import Dataset
from PIL import Image
import os# 构造一个子文件夹数据集类MyData
class MyData(Dataset):def __init__(self, root_dir, label_dir):    # root_dir是指整个数据集的根目录,label_dir是指具体某一个类的子目录# 在init初始化函数中,定义一些类中的全局变量,即跟在self.后的变量们self.root_dir = root_dirself.label_dir = label_dirself.path = os.path.join(self.root_dir, self.label_dir)self.img_list = os.listdir(self.path)def __getitem__(self, index):   # 传入下标获取元素img_name = self.img_list[index]img_item_path = os.path.join(self.path, img_name)img = Image.open(img_item_path)label = self.label_dirreturn img, label[:-6]	# 返回的是一个元组# 这里进行了截取,因为我不想要label_dir最后面的'_image'这6个元素def __len__(self):return len(self.img_list)# --------------实例化ants_data和bees_data------------- #
root_dir = 'hymenoptera_data/train'
ants_dir = 'ants'
bees_dir = 'bees'
ants_data = Mydata(root_dir, ants_dir)
bees_data = Mydata(root_dir, bees_dir)
# ---------------------------------------------------- ## -------------返回一个元组,分别赋值给img和label------- #
img, label = ants_data[0]
img.show()
# ----------------------------------------------------- ## ---因为是元组,所以可用[0]、[1]直接提取出img、label---- #
print(label == ants_data[0][1])		# true
# ----------------------------------------------------- ## ----------将ants_data和bees_data相加起来使用---------- #
sum = ants_data + bees_data
len_ants = len(ants_data)	# 124
len_bees = len(bees_data)	# 121
len_sum = len(sum)				# 245
print(len_sum == len_ants+len_bees)	# True
print(sum[123][1])			# ants
print(sum[124][1])			# bees


 

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

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

相关文章

19 数组静态初始化练习

语法: 数据类型[ ] 数组名称 {元素1,元素2,元素3}; public class Demo1 {public static void main(String[] args) {int[] arr {0,1,2,3};System.out.println(arr);System.out.println(arr[0]);System.out.println(arr[1]);System.out.pri…

SpringBoot中间件—ORM(Mybatis)框架实现

目录 定义 需求背景 方案设计 代码展示 UML图 实现细节 测试验证 总结 源码地址(已开源):https://gitee.com/sizhaohe/mini-mybatis.git 跟着源码及下述UML图来理解上手会更快,拒绝浮躁,沉下心来搞 定义&#x…

【C++杂货铺】拷贝构造函数

📖定义 拷贝构造函数是构造函数的一个重载,它的本质还是构造函数,那就意味着,只有在创建对象的时候,编译器才会自动调用它,那他和普通的构造函数有什么区别呢? 拷贝构造函数,是创建…

【数学建模】为什么存在最优策略?

一、说明 在进行优化回归过程,首先要看看是否存在最优策略? 在有限马尔可夫决策过程 (MDP) 中,最优策略被定义为同时最大化所有状态值的策略。换句话说,如果存在最优策略,则最大化状态 s 值的策…

内存函数及其模拟实现

身体扛不住的时候,意志会带你杀出重围 文章目录 一、memcpy函数 函数介绍 模拟实现 二、memmove函数 函数介绍 模拟实现 三、memset函数 函数介绍 模拟实现 大家好,我是纪宁。这篇文章给大家介绍C语言中常见的内存处理函数。 一、memcpy函数 …

20.matlab数据分析极限(matlab程序)

1.简述 计算极限 MATLAB提供计算极限的limit函数。在其最基本的形式中,limit函数将表达式作为参数,并在独立变量为零时找到表达式的极限。 例如,要计算函数f(x)(x^3 5)/(x^4 7)的极限,因为x趋向于零。 syms xlimit((x^3 5)/…

day42-servlet下拉查询/单例模式

0目录 1.Servlet实现下拉查询(两表) 2.单例模式 1.实战 1.1 创建工程,准备环境... 1.2 接口 1.3 重写方法 1.4 servlet 1.5 list.jsp list.jsp详解 2.单例模式 2.1 饿汉模式:在程序加载时直接创建对象&#…

学习系统编程No.32【线程互斥实战】

引言: 北京时间:2023/7/19/15:22,昨天更新完博客,和舍友下了一会棋,快乐就是这么简单,哈哈哈!总体来说,摆烂程度得到一定的改善,想要达到以前的水准,需要一定…

UTM 4.3 发布:在 macOS 上优雅的使用 QEMU 虚拟化 Windows、Linux 和 macOS

UTM 4.3 发布:在 macOS 上优雅的使用 QEMU 虚拟化 Windows、Linux 和 macOS 在 iOS 中虚拟化 Windows、Linux 和 Unix 请访问原文链接:https://sysin.org/blog/utm-4/,查看最新版。原创作品,转载请保留出处。 作者主页&#xf…

C语言:杨氏矩阵中查找某数(时间复杂度小于O(N))

题目: 有一个数字矩阵(二维数组), 矩阵的每行从左到右是递增的,矩阵从上到下是递增的, 请编写程序在这样的矩阵中查找某个数字是否存在, 要求:时间复杂度小于O(N)。 思路&#xff1…

《零基础入门学习Python》第057讲:论一只爬虫的自我修养5:正则表达式

如果你在课后有勤加练习,那么你对于字符串的查找应该是已经深恶痛绝了,你发现下载一个网页是很容易的,但是要在网页中查找到你需要的内容,那就是困难的,你发现字符串查找并没有你想象的那么简单,并不是说直…

(已解决)RuntimeError: Java gateway process exited before sending its port number

今天用Pycharm远程使用pysaprk解释器时,跑代码出现了这个错误: RuntimeError: Java gateway process exited before sending its port number 找了好多博客都没解决问题,有说重装spark的,有说本地配Java_home的,后面我…

leetcode 47. 全排列 II

2023.7.23 这道题是上一题全排列 的一个升级版。 唯一区别就是需要增加一个树层去重的操作&#xff0c;因为数组nums中允许有重复的元素了&#xff0c;而上一题没有重复元素。 下面看代码&#xff1a; class Solution { public:vector<vector<int>> ans;vector<…

如何评测一个大语言模型?

编者按&#xff1a;大型语言模型&#xff08;Large language models, LLMs&#xff09;因其在学术界和工业界展现出前所未有的性能而备受青睐。随着 LLMs 在研究和实际应用中被广泛使用&#xff0c;对其进行有效评测变得愈发重要。近期已有多篇论文围绕大模型的评测进行研究&am…

RocketMQ教程-(4)-领域模型-消费者分组ConsumerGroup

定义​ 消费者分组是 Apache RocketMQ 系统中承载多个消费行为一致的消费者的负载均衡分组。 和消费者不同&#xff0c;消费者分组并不是运行实体&#xff0c;而是一个逻辑资源。在 Apache RocketMQ 中&#xff0c;通过消费者分组内初始化多个消费者实现消费性能的水平扩展以…

【云原生】Docker网络及Cgroup资源控制

一、Docker网络 1.docker网络实现原理 Docker使用Linux桥接&#xff0c;在宿主机虚拟一个Docker容器网桥(docker0)&#xff0c;Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址&#xff0c;称为Container-IP&#xff0c;同时Docker网桥是每个容器的默认网关。…

Rust之所有权

1、所有权的概念&#xff1a; 程序需要管理自己在运行时使用的计算机内部空间。Rust语言采用包含特定规则的所有权系统来管理内存&#xff0c;这套规则允许编译器在编译的过程中执行检查工作&#xff0c;而不会产生任何的运行时开销。 (1)、所有权规则&#xff1a; Rust中的…

【前端知识】React 基础巩固(三十)——CSS编写方式

React 基础巩固(三十)——CSS编写方式 1.内联样式 Style 接受一个采用小驼峰命名属性的JS对象&#xff0c;而不是CSS字符串 可以引用state中的状态来设置相关的样式 优点&#xff1a;样式之间不会有冲突&#xff1b;可以动态获取当前state中的状态 缺点&#xff1a;需要使用…

微信小程序——页面跳转方法和场景用法总结

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

Arduino 与 Unity3D TCP通信

一、通过传输流的方式 #include <WiFi.h>#define LED_PIN 5 const char * ssid "Daschow2021"; const char * password "daschow2021"; void setup() {Serial.begin(9600);//连接WiFiWiFi.begin(ssid,password);Serial.print("正在连接Wifi&…