deep_thoughts

2024-09-02 19:12
文章标签 deep thoughts

本文主要是介绍deep_thoughts,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.tensor

tensor就是一个n维的数组。

import torch
import  numpy as np
data = [[1, 2],[3, 4]]
print(type(data))#<class 'list'>
x_data = torch.tensor(data)
print(type(x_data))#<class 'torch.Tensor'>
print(x_data.dtype)#torch.int64
np_array = np.array(data)
x_np = torch.from_numpy(np_array)#将np数组转换成为tensor张量
x_ones = torch.ones_like(x_data)#张量结构和x_data相同,但是里面的元素全部变成了0
x_rand = torch.rand_like(x_data, dtype=torch.float)#张量结构和x_data相同,但是里面的元素全部变成了随机数
rand_tensor = torch.rand((3,3))#()表示的是元组 (tuple),元组是一个不可变的有序数据集合,可以使用索引来访问元素,但不能修改元素。
print(rand_tensor)
rand_tensor = torch.rand([4,4])#[]表示的是列表 (list),列表是一个有序的数据集合,可以使用索引来访问元素,并且可以修改列表中的元素。
print(rand_tensor)
#但是torch.rand函数中不可以使用{}集合来表示shape传递参数.集合 (set) 是一个无序的不重复数据集合,不能使用索引来访问元素,并且可以进行集合运算(并集,交集等)tensor = torch.rand(3,4)
print(f"Shape of tensor: {tensor.shape}")#Shape of tensor: torch.Size([3, 4])
print(f"Datatype of tensor: {tensor.dtype}")#Datatype of tensor: torch.float32
print(f"Device tensor is stored on: {tensor.device}")#Device tensor is stored on: cpu.看张量是在哪个设备上创建的
if torch.cuda.is_available():tensor = tensor.to("cuda")#如果安装了cuda环境,将张量移动到gpu上去执行。
torch.set_default_dtype(torch.float64)#将张量的元素类型设置为64为浮点型
torch.arange(start=0, end, step=1, *, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False) 
torch.arange(1, 2.5, 0.5)#tensor([ 1.0000,  1.5000,  2.0000])#区间是左闭右开
torch.range(start=0, end, step=1, *, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False)
torch.range(1, 4)#tensor([ 1.,  2.,  3.,  4.])去见识左闭右闭
torch.eye(3)#创建2维的张量并且对角线是1
#tensor([[ 1.,  0.,  0.],[ 0.,  1.,  0.],[ 0.,  0.,  1.]])
torch.full(size, fill_value)#Creates a tensor of size size filled with fill_value.
torch.full((2, 3), 3.141592)
#tensor([[ 3.1416,  3.1416,  3.1416],[ 3.1416,  3.1416,  3.1416]])
torch.cat(tensors, dim=0, *, out=None)#张量的拼接
Example:
>>> x = torch.randn(2, 3)
>>> x
tensor([[ 0.6580, -1.0969, -0.4614],[-0.1034, -0.5790,  0.1497]])
>>> torch.cat((x, x, x), 0)
tensor([[ 0.6580, -1.0969, -0.4614],[-0.1034, -0.5790,  0.1497],[ 0.6580, -1.0969, -0.4614],[-0.1034, -0.5790,  0.1497],[ 0.6580, -1.0969, -0.4614],[-0.1034, -0.5790,  0.1497]])
>>> torch.cat((x, x, x), 1)
tensor([[ 0.6580, -1.0969, -0.4614,  0.6580, -1.0969, -0.4614,  0.6580,-1.0969, -0.4614],[-0.1034, -0.5790,  0.1497, -0.1034, -0.5790,  0.1497, -0.1034,-0.5790,  0.1497]])
torch.chunk(input, chunks, dim=0) → List of Tensors#从dim维度将张量input分成chunks份

从dim=0维度来进行splite

从dim=1维度来进行splite

torch.gather(input, dim, index, *, sparse_grad=False, out=None) → Tensor
torch.reshape(input, shape) #shape中m和n的乘积要等于input的元素个数
>>> a = torch.arange(4.)
>>> torch.reshape(a, (2, 2))
tensor([[ 0.,  1.],[ 2.,  3.]])
>>> b = torch.tensor([[0, 1], [2, 3]])
>>> torch.reshape(b, (-1,))#如果reshape成为一维的,但不知道具体形状,也就是元素的个数,就用-1去代替。 
tensor([ 0,  1,  2,  3])torch.split(tensor, split_size_or_sections, dim=0)
>>> a = torch.arange(10).reshape(5, 2)
>>> a
tensor([[0, 1],[2, 3],[4, 5],[6, 7],[8, 9]])
>>> torch.split(a, 2)//将a从dim=0的维度每2个划分一次
(tensor([[0, 1],[2, 3]]),tensor([[4, 5],[6, 7]]),tensor([[8, 9]]))
>>> torch.split(a, [1, 4])//将a从dim=0的维度按照列表进行划分成两个块,分别是1行和4行。
(tensor([[0, 1]]),tensor([[2, 3],[4, 5],[6, 7],[8, 9]]))
torch.squeeze(input, dim=None) → Tensor

将大小为1的维度直接移除掉,毕竟当某个维度的大小是1时,并没有新增额外的元素。

torch.stack(tensors, dim=0, *, out=None) → Tensor

cat是直接连起来,但是stack是堆叠起来,维度肯定是会扩充的。

 2.Dataset和DataLoader

自定义的dataset必须实现__init__, __len__, and __getitem__三个函数

import os
import pandas as pd
from torchvision.io import read_imageclass CustomImageDataset(Dataset):def __init__(self, annotations_file, img_dir, transform=None, target_transform=None):#transform是对image进行预处理,而target_transform是对标签进行预处理self.img_labels = pd.read_csv(annotations_file)self.img_dir = img_dirself.transform = transformself.target_transform = target_transformdef __len__(self):return len(self.img_labels)def __getitem__(self, idx):#基于一个索引idx返回一个训练对 img_path = os.path.join(self.img_dir, self.img_labels.iloc[idx, 0])image = read_image(img_path)label = self.img_labels.iloc[idx, 1]if self.transform:image = self.transform(image)if self.target_transform:label = self.target_transform(label)return image, label
from torch.utils.data import DataLoadertrain_dataloader = DataLoader(training_data, batch_size=64, shuffle=True)
test_dataloader = DataLoader(test_data, batch_size=64, shuffle=True)

 

 

这篇关于deep_thoughts的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1130825

相关文章

Deep Ocr

1.圈出内容,文本那里要有内容.然后你保存,并'导出数据集'. 2.找出deep_ocr_recognition_training_workflow.hdev 文件.修改“DatasetFilename := 'Test.hdict'” 310行 write_deep_ocr (DeepOcrHandle, BestModelDeepOCRFilename) 3.推理test.hdev

Introduction to Deep Learning with PyTorch

1、Introduction to PyTorch, a Deep Learning Library 1.1、Importing PyTorch and related packages import torch# supports:## image data with torchvision## audio data with torchaudio## text data with t

Face Recognition简记1-A Performance Comparison of Loss Functions for Deep Face Recognition

创新点 1.各种loss的比较 总结 很久没见到这么专业的比较了,好高兴。 好像印证了一句话,没有免费的午餐。。。。 ArcFace 和 Angular Margin Softmax是性能比较突出的

A fault diagnosis method of bearings based on deep transfer learning

A fault diagnosis method of bearings based on deep transfer learning 基于深度迁移学习的轴承故障诊断方法 ABSTRACT 近年来,许多深度迁移学习方法被广泛应用于不同工况下的轴承故障诊断,以解决数据分布移位问题。然而,在源域数据差异较大、特征分布不一致的情况下,深度迁移学习方法在轴承故障诊断中的准确率较低,因此本文提出了一种

Deep Learning Techniques for Medical Image Segmentation: Achievements and Challenges

前言: 该篇文章较为全面但稍偏简单的介绍医学图像分割的常见数据集、各种神经网络,以及常见的训练技巧等问题。 一、重点摘录 2.5D approaches are inspired by the fact that 2.5D has the richer spatial information of neighboing pixels wiht less computational costs t

Learning Policies for Adaptive Tracking with Deep Feature Cascades

Learning Policies for Adaptive Tracking with Deep Feature Cascades ICCV17 shotlight 作者:Chen Huang, CMU postdoctor,导师 Deva Ramanan summary 文章主要贡献在于速度与精度的权衡(AUC 0.638,fps 23),通过强化学习策略,来控制网络的深度,使得精度和

java对象克隆之深度克隆 deep clone

克隆技术默认的是浅度克隆,对于包含在对象内部的对象并没有克隆,例如对象stdA包含对象x,克隆后得到对象stdB,也包含对象x,但两个x所指向的数据成员相同。 深度克隆实例如下: package com.demo;class Book implements Cloneable{private String name;private double price;public Book(Str

读Applying Deep Learning To Airbnb Search有感

读Applying Deep Learning To Airbnb Search有感 介绍 Airbnb的房屋预订系统对于房主和租客来说是一个双向的平台,房主想出租他们的空间,租客想预订房间。airbnb.com网站一开始是一个简单的根据一个特定的地理位置,召回一个酒店列表。 最初的搜索排序模型是人工评分的,后来梯度提升树(GBDT)代替了人工评分,这是房屋预订系统跨出的一大步,之后随之而来的

【读点论文】Scene Text Detection and Recognition: The Deep Learning Era

Scene Text Detection and Recognition: The Deep Learning Era Abstract 随着深度学习的兴起和发展,计算机视觉发生了巨大的变革和重塑。场景文本检测与识别作为计算机视觉领域的一个重要研究领域,不可避免地受到了这波革命的影响,从而进入了深度学习时代。近年来,该社区在思维方式、方法论和性能方面取得了长足的进步。本综述旨在总结和分析深度学

了解ceph scrub deep-scrub

目的 了解 ceph scrub, deep-scrub 作用了解 ceph scrub, deep-scrub 相关配置 参考告警 $ ceph -scluster:id: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxhealth: HEALTH_WARN434 pgs not deep-scrubbed in time <------