tag 标签: PyTorch

相关博文
  • 热度 2
    2024-3-6 00:16
    397 次阅读|
    0 个评论
    PyTorch入门学习 两个重要函数 package (pytorch) 有许多工具箱,探索这个工具箱,有两个工具: dir():打开工具,看见工具箱某个分区的结构 help():如何使用这个工具 IN : import torch IN : torch.cuda.is_available() Out : True IN : dir(torch) IN : dir(torch.cuda) IN : dir(torch.cuda.is_available) #输出的有双下划线表示不能被更改,是一个具体的函数了 #选择相应的环境 conda activate torch jupyter notebook pytorch如何加载数据? Dataset:可以用于提取数据,和它的真实的label,就能得到某一个具体的数据。 Dataloader:为网络提供不同的数据形式。 如何获取每一个数据及其label。 统计总共有多少个数据。 组织形式:训练集,测试集,label信息;也可以将label直接放置在图片的名称上。 from torch.utils.data import Dataset help(Dataset) Dataset?? #表达更清晰 代码实战 from torch . utils . data import Dataset import PIL import Image import os # 获取所有图片的地址 # import cv2 # conda install opencv - python ; pip install opencv - python ​ class MyData ( Dataset ): def __init__ ( self , root_dir , label_dir ): # 提供全局变量 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 ) # 函数中的变量无法传递到其他的函数中去,self实际上就是指向类自身首地址的指针,点成员实际就是通过偏移找到相应成员 def __getitem__ ( self , idx ): # 使用idx来获取图片,首先需要获取文件夹,然后才能得到文件夹下面所有的图片 img_name = self . img_path 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 = MyData ( root_dir , ants_label_dir ) bees_dataset = MyData ( root_dir , bees_label_dir ) ​ train_dataset = ants_dataset + bees_dataset input是照片蚂蚁,label是 ants In : from PIL import Image In : img_path = "copy relative path" # 注意路径在windows里面 \ 需要加转义字符 \\ # / 不需要转义, \ 需要转义为 \\ In : img = Image . open ( img_path ) In : img . size In : img . show () In : dir_path = "dataset/train/ants" In : img_path_list = os . listdir ( dir_path ) ​ In : import os In : root_dir = "relative address" In : label_dir = "ants" In : path = os . path . join ( root_dir , label_dir ) # 拼接地址 ​ In : img_path = os . listdir ( path ) ​ In : ants_dataset In : img , label = ants_dataset In : img . show () In : img , label = ants_dataset In : img . show () ​ In : len ( ants_dataset ) In : len ( bees_dataset ) In : len ( tarin_dataset ) ​ In : img , label = train_dataset
相关资源
  • 所需E币: 0
    时间: 2024-3-19 14:25
    大小: 3.18KB
    上传者: 开心就很好了
    一、什么是pytorchPyTorch是一个开源的Python机器学习库,基于Torch,用于自然语言处理等应用程序。PyTorch既可以看作加入了GPU支持的numpy,同时也可以看成一个拥有自动求导功能的强大的深度神经网络。除了Facebook外,它已经被Twitter、CMU和Salesforce等机构采用。二、为什么使用PyTorch?机器学习研究人员喜欢使用PyTorch。截至2022年2月,PyTorch是PapersWithCode上最常用的深度学习框架,该网站用于跟踪机器学习研究论文及其附带的代码存储库。PyTorch还有GPU加速,使代码运行得更快,你可以专注于操作数据和编写算法。三、PyTorch库的优势通过将模型应用到例证,深度学习允许我们执行很多复杂任务,如机器翻译、玩战略游戏以及在杂乱无章的场景中识别物体等。为了在实践中做到这一点,我们需要灵活且高效的工具,以便能够适用于这些复杂任务,能够在合理的时间内对大量数据进行训练。我们需要已被训练过的模型在输入变量变化的情况下正确执行。接下来看看我们决定使用PyTorch的一些原因。PyTorch很容易被推广,因为它很简单。许多研究人员和实践者发现它易于学习、使用、扩展和调试。它是Python化的,虽然和任何复杂领域一样,它有注意事项和最佳实践示例,但对于以前使用过Python的开发人员来说,使用该库和使用其他Python库一样。更具体地说,在PyTorch中编写深度学习机是很自然的事情。PyTorch为我们提供了一种数据类型,即张量,通常用来存储数字、向量、矩阵和数组。此外,PyTorch还提供了操作它们的函数,我们可以使用这些函数来增量编程。如果我们愿意,还可以进行交互式编程,就像平常使用Python一样。如果你知道NumPy,那么你对交互式编程应是非常熟悉的。PyTorch具备2个特性,使得它与深度学习关联紧密。首先,它使用GPU加速计算,通常比在CPU上执行相同的计算速度快50倍。其次,PyTorch提供了支持通用数学表达式数值优化的工具,该工具用于训练深度学习模型。四、创建数据Tensors张量是一种特殊的数据结构,它和数组还有矩阵十分相似。在Pytorch中,Tensors可以在gpu或其他专用硬件上运行来加速计算之外,其他用法类似Numpy。importtorchimportnumpyasnp#直接从数据创建data=[[1,2],[3,4]]x_data=torch.tensor(data)x_data.shape#全为1x_ones=torch.ones_like(x_data)#retainsthepropertiesofx_dataprint(f"OnesTensor:\n{x_ones}\n")#全为0x_rand=torch.rand_like(x_data,dtype=torch.float)#overridesthedatatypeofx_dataprint(f"RandomTensor:\n{x_rand}\n")#查看tensor类型tensor=torch.rand(3,4)print(f"Shapeoftensor:{tensor.shape}“)print(f"Datatypeoftensor:{tensor.dtype}”)print(f"Devicetensorisstoredon:{tensor.device}")步骤2:自动梯度计算在Pytorch中可以使用tensor进行计算,并最终可以从计算得到的tensor计算损失,并进行梯度信息。在Pytorch中主要关注正向传播的计算即可。#x=torch.ones(2,2,requires_grad=True)x=torch.tensor([[1,2],[3,4]],dtype=float,requires_grad=True)print(x)y=x+2print(y)print(y.grad_fn)#y就多了一个AddBackwardz=y*y*3out=z.mean()print(z)#z多了MulBackwardprint(out)#out多了MeanBackward#计算公式:out=0.25((x+2)*(x+2)*3)out.backward()print(x.grad)步骤3:拟合曲线接下来我们将尝试使用Pytorch拟合一条曲线,我们首先的创建待你和的参数,并加载待训练的数据。#需要计算得到的参数w=torch.ones(1,requires_grad=True)b=torch.ones(1,requires_grad=True)#数据x_tensor=torch.from_numpy(x)y_tensor=torch.from_numpy(y)#目标模型#y=wx+b定义损失defmse(label,pred):diff=label-predreturntorch.sqrt((diff**2).mean())pred=x_tensor*w+bloss=mse(y_tensor,pred)#执行20次参数更新for_inrange(20):#重新定义一下,梯度清空w=w.clone().detach().requires_grad_(True)b=b.clone().detach().requires_grad_(True)#正向传播pred=x_tensor*w+b#计算损失loss=mse(y_tensor,pred)print(loss)#计算梯度loss.backward()五、完整代码(GPU)使用GPU训练只需要把训练数据、模型放入GPU中即可指定是否使用GPU训练模型device=torch.device("cuda:0"iftorch.cuda.is_available()else"cpu")模型放入GPU中model.to(device)数据放入GPU中inputs=torch.from_numpy(x_train).to(device)labels=torch.from_numpy(y_train).to(device)importtorchimporttorch.nnasnnimportnumpyasnpclassLinear_yy(torch.nn.Module):  def__init__(self,in_dim,media_dim,out_dim):    super(Linear_yy,self).__init__()    self.linear_1=torch.nn.Linear(in_dim,media_dim)    self.linear_2=torch.nn.Linear(media_dim,out_dim)       defforward(self,x):    x=self.linear_1(x)    x=self.linear_2(x)    returnx   in_dim=1media_dim=2out_dim=1model=Linear_yy(in_dim=in_dim,media_dim=media_dim,out_dim=out_dim)device=torch.device("cuda:0"iftorch.cuda.is_available()else"cpu")model.to(device)epochs=1000learning_rate=0.0001optimizer=torch.optim.Adam(model.parameters(),lr=learning_rate)loss_faction=torch.nn.MSELoss()forepochinrange(epochs):  epoch+=1  #注意转行成tensor  inputs=torch.from_numpy(x_train).to(device)  labels=torch.from_numpy(y_train).to(device)     #梯度要清零每一次迭代  optimizer.zero_grad()   #前向传播  outputs=model(inputs)  #计算损失  loss=loss_faction(outputs,labels)  #返向传播  loss.backward()  #更新权重参数  optimizer.step()  ifepoch%50==0:    print('epoch{},loss{}'.format(epoch,loss.item()))
  • 所需E币: 0
    时间: 2024-3-19 14:56
    大小: 2.48KB
    一、Pytorch功能PyTorch是一个基于Torch的Python开源机器学习库,用于自然语言处理等应用程序。它主要由Facebookd的人工智能小组开发,不仅能够实现强大的GPU加速,同时还支持动态神经网络,这一点是现在很多主流框架如TensorFlow都不支持的。PyTorch提供了两个高级功能:具有强大的GPU加速的张量计算(如Numpy)包含自动求导系统的深度神经网络除了Facebook之外,Twitter、GMU和Salesforce等机构都采用了PyTorch。Torch是一个有大量机器学习算法支持的科学计算框架,是一个与Numpy类似的张量(Tensor)操作库,其特点是特别灵活,但因其采用了小众的编程语言是Lua,所以流行度不高,这也就有了PyTorch的出现。所以其实Torch是PyTorch的前身,它们的底层语言相同,只是使用了不同的上层包装语言。PyTorch是一个基于Torch的Python开源机器学习库,用于自然语言处理等应用程序。它主要由Facebookd的人工智能小组开发,不仅能够实现强大的GPU加速,同时还支持动态神经网络,这一点是现在很多主流框架如TensorFlow都不支持的。PyTorch提供了两个高级功能:*具有强大的GPU加速的张量计算(如Numpy)*包含自动求导系统的深度神经网络二、Pytorch使用场景1.图像和语音识别PyTorch在图像和语音识别领域得到了广泛应用,包括对图像进行分类、目标检测、语音情感识别等。2.自然语言处理PyTorch在自然语言处理领域也有很多应用,包括对文本进行分类、情感分析、机器翻译等。3.机器学习PyTorch也可以用于传统机器学习问题,例如分类、回归等问题。4.深度学习教学和研究PyTorch使用简单,易于理解,适合用来进行深度学习教学和研究。三、训练流程准备好数据和网络之后,就可以开始训练模型了,训练的过程分为train和test,其中train做训练,test做验证。训练的过程包括3个超参数Epochs-迭代数据集的次数,也就是说对数据集进行了多少次迭代BatchSize-一次训练的样本数LearningRate-学习率。较小的值会导致学习速度变慢,而较大的值可能会导致训练过程中出现不可预测的行为。learning_rate=1e-3batch_size=64epochs=5deftrain_loop(dataloader,model,loss_fn,optimizer):  size=len(dataloader.dataset)  forbatch,(X,y)inenumerate(dataloader):    #Computepredictionandloss    pred=model(X)    loss=loss_fn(pred,y)    #Backpropagation    optimizer.zero_grad()    loss.backward()    optimizer.step()    ifbatch%100==0:      loss,current=loss.item(),batch*len(X)      print(f"loss:{loss:>7f} [{current:>5d}/{size:>5d}]")deftest_loop(dataloader,model,loss_fn):  size=len(dataloader.dataset)  num_batches=len(dataloader)  test_loss,correct=0,0  withtorch.no_grad():    forX,yindataloader:      pred=model(X)      test_loss+=loss_fn(pred,y).item()      correct+=(pred.argmax(1)==y).type(torch.float).sum().item()  test_loss/=num_batches  correct/=size  print(f"TestError:\nAccuracy:{(100*correct):>0.1f}%,Avgloss:{test_loss:>8f}\n")loss_fn=nn.CrossEntropyLoss()optimizer=torch.optim.SGD(model.parameters(),lr=learning_rate)epochs=10fortinrange(epochs):  print(f"Epoch{t+1}\n-------------------------------")  train_loop(train_dataloader,model,loss_fn,optimizer)  test_loop(test_dataloader,model,loss_fn)print("Done!")模型保存和加载通过pytorch可以保存和加载训练好的模型。在PyTorch中,torch.nn.Module模型的可学习参数(即权重和偏差)包含在模型的参数中(通过model.parameters()访问)。state_dict是一个Python字典对象,它保存了模型每一层的参数。#Printmodel'sstate_dictprint("Model'sstate_dict:")forparam_tensorinmodel.state_dict():  print(param_tensor,"\t",model.state_dict()[param_tensor].size())打印结果如下Model'sstate_dict:conv1.weight   torch.Size([6,3,5,5])conv1.bias  torch.Size([6])conv2.weight   torch.Size([16,6,5,5])conv2.bias  torch.Size([16])fc1.weight  torch.Size([120,400])fc1.bias   torch.Size([120])fc2.weight  torch.Size([84,120])fc2.bias   torch.Size([84])fc3.weight  torch.Size([10,84])fc3.bias   torch.Size([10])四、总结至此,pytorch的基本使用就介绍完成了,可以看出结合深度学习网络pytorch提供了非常好用的接口,帮助我们创建网络、加载数据、训练和部署等,极大的提高了深度学习的效率,后面我们将结合具体的例子对pytorch的使用做一个介绍。
  • 所需E币: 1
    时间: 2023-9-26 10:08
    大小: 953KB
    上传者: 一蓑烟雨as
    4.5PytorchAI框架.pdf
  • 所需E币: 0
    时间: 2023-8-4 16:02
    大小: 1KB
    上传者: 蝴蝶结欧恩
    分享课程——Pytorch框架CV开发-从入门到实战,附代码+PDF课件+数据集下载。课程简介:通过大量实战案例与模型实现为牵引,学会使用经典的网络结构设计自己的网络模型,实现各种常见应用场景下的识别与检测任务,同时通过大量的代码练习来巩固所学知识,理论联系实际,做Pytorch框架工业级的CV开发者。PyTorch是一个基于Python的科学计算库,它提供了两个高级功能:张量计算和深度学习。PyTorch的张量计算功能类似于NumPy,但可以在GPU上运行,这使得它非常适合于深度学习。PyTorch的深度学习功能包括自动求导、动态计算图和模型部署等功能。PyTorch的设计目标是提供一个灵活、快速和易于使用的深度学习框架。
  • 所需E币: 1
    时间: 2023-6-28 13:39
    大小: 5.1MB
    上传者: 张红川
    Pytorch常用函数手册.pdf
  • 所需E币: 0
    时间: 2023-6-9 11:10
    大小: 997B
    上传者: 开心就很好了
    《PyTorch2.0实战(全连接网络+卷积网络)》让学员用最短的时间、零起步、迅速学会使用PyTorch2.0进行卷积网络项目的实战!先从基本概念开始;然后实战手势识别任务;全程弱化理论推导,强化动手实战!全流程一气呵成,短平快即学即用!1、短平快掌握PyTorch2.0实战要点2,摆脱理论束缚,迅速上手实战让学员用最短的时间、零起步、迅速学会使用PyTorch2.0进行全连接网络项目的实战!先从基本概念开始;然后实战回归任务和分类任务;全程弱化理论推导,强化动手实战!全流程一气呵成,短平快即学即用!1、短平快掌握PyTorch2.0实战要点2,摆脱理论束缚,迅速上手实战你将收获短平快掌握PyTorch2.0实战要点学会全连接网络项目的实战零起步,短时间内学会摆脱理论束缚,迅速上手实战快速搞定卷积网络项目PyTorch2.0实战_全连接网络第一章:PyTorch基础第二章:实战回归任务第三章:实战分类任务PyTorch2.0实战_卷积网络第一章:环境搭建和数据读取第二章:预处理和数据增强第三章:卷积相关API第四章:实战项目_手势识别
  • 所需E币: 1
    时间: 2023-5-9 10:09
    大小: 56.59MB
    深度学习入门之PyTorch-(博文视点AI系列)-廖星宇
  • 所需E币: 0
    时间: 2023-5-5 14:27
    大小: 1.13KB
    上传者: 开心就很好了
    分享视频教程——《深度强化学习极简入门与Pytorch实战》,视频+源码+课件下载!强化学习作为行为主义人工智能学派的典型代表,近几年与深度神经网络相结合形成的深度强化学习(DRL),达到了令人惊叹的智能水平:2015年DQN智能体玩视频游戏超越人类水平,2017年基于PPO算法的OpenFive在《Dota》游戏中战胜人类顶尖职业玩家,2019年基于DRL的AlphaStar在《星际争霸II》游戏中战胜人类顶尖职业玩家。深度强化学习为通用人工智能(AGI)带来了新的希望!然而,深度强化学习理论较为抽象,学习曲线陡峭,需要大量的时间和精力才能入门,很多硕士和博士往往浪费了大量时间在入门阶段,耽误了学习和科研进度。《深度强化学习极简入门与Pytorch实战》课程的特点之一:精炼而不失重点。本门课程深入浅出,根据多年深度强化学习科研和项目实践经验,选取了强化学习入门所必须掌握的知识点,为学员构建一个最小而必要的强化学习知识体系,为后续的研究和论文专业以及工程实践打下坚实的基础。《深度强化学习极简入门与Pytorch实战》课程的特点二:强调实战。为每个知识点精心设计设计编程实践练习,让学员在练习中理解和掌握知识点。课程设计了综合实战项目——开发强化学习智能体并参加强化学习比赛,提供竞赛baseline代码。
  • 所需E币: 2
    时间: 2023-4-11 10:10
    大小: 109.42MB
    深度学习之PyTorch实战计算机视觉-唐进民
  • 所需E币: 5
    时间: 2022-7-30 15:32
    大小: 1.73MB
    上传者: ZHUANG
    基于Pytorch的人脸识别系统
  • 所需E币: 5
    时间: 2022-3-1 14:41
    大小: 16.43MB
    上传者: 西风瘦马
    内容简介本书以“平民”的起点,从“零”开始,基于PyTorch框架,介绍深度学习和强化学习的技术与技巧,逐层铺垫,营造良好的带入感和亲近感,把学习曲线拉平,使得没有学过微积分等高级理论的程序员一样能够读得懂、学得会。同时,本书配合漫画插图来调节阅读气氛,并对每个原理都进行了对比讲解和实例说明。本书适合对深度学习和强化学习感兴趣的技术人员、希望对深度学习和强化学习进行入门了解的技术人员及深度学习和强化学习领域的初级从业人员阅读。未经许可,不得以任何方式复制或抄袭本书之部分或全部内容。版权所有,侵权必究。图书在版编目(CIP)数据白话强化学习与PyTorch/高扬,叶振斌著.-北京:电子工业出版社,2019.9ISBN978-7-121-36747-2Ⅰ.①白…Ⅱ.①高…②叶…Ⅲ.①人工智能-程序设计Ⅳ.①TP18中国版本图书馆CIP数据核字(2019)第111731号
  • 所需E币: 5
    时间: 2022-3-1 14:10
    大小: 8MB
    上传者: 西风瘦马
    内容简介深度学习已经成为人工智能炙手可热的技术,PyTorch是一个较新的、容易上手的深度学习开源框架,目前已得到广泛应用。本书从PyTorch框架结构出发,通过案例主要介绍了线性回归、逻辑回归、前馈神经网络、卷积神经网络、循环神经网络、自编码模型、以及生成对抗网络。本书作为深度学习的入门教材,省略了大量的数学模型推导,适合深度学习初学者,人工智能领域的从业者,以及深度学习感兴趣的人阅读。图书在版编目(CIP)数据深度学习框架PyTorch快速开发与实战/邢梦来,王硕,孙洋洋编著.—北京:电子工业出版社,2018.8ISBN978-7-121-34564-7
  • 所需E币: 1
    时间: 2020-11-6 22:22
    大小: 15.55MB
    上传者: huson
    Pytorch是开源的Python机器学习库,基于Torch,底层由C++实现,应用于人工智能领域,如自然语言处理。它最初由Facebook的人工智能研究团队开发,并且被用于Uber的概率编程软件Pyro
  • 所需E币: 4
    时间: 2020-8-12 16:59
    大小: 33.5MB
    上传者: VinayKIngle
    《动手学深度学习》电子书内容简介本书旨在向读者交付有关深度学习的交互式学习体验。书中不仅阐述深度学习的算法原理,还演示它们的实现和运行。与传统图书不同,本书的每一节都是一个可以下载并运行的Jupyter记事本,它将文字、公式、图像、代码和运行结果结合在了一起。此外,读者还可以访问并参与书中内容的讨论。全书的内容分为3个部分:第一部分介绍深度学习的背景,提供预备知识,并包括深度学习最基础的概念和技术;第二部分描述深度学习计算的重要组成部分,还解释近年来令深度学习在多个领域大获成功的卷积神经网络和循环神经网络;第三部分评价优化算法,检验影响深度学习计算性能的重要因素,并分别列举深度学习在计算机视觉和自然语言处理中的重要应用。本书同时覆盖深度学习的方法和实践,主要面向在校大学生、技术人员和研究人员。阅读本书需要读者了解基本的Python编程或附录中描述的线性代数、微分和概率基础。作者简介阿斯顿·张(AstonZhang)亚马逊应用科学家,美国伊利诺伊大学香槟分校计算机科学博士,统计学和计算机科学双硕士。他专注于机器学习的研究,并在数个顶级学术会议发表过论文。他担任过NeurIPS、ICML、KDD、WWW、WSDM、SIGIR、AAAI等学术会议的程序委员或审稿人以及FrontiersinBigData期刊的编委。李沐(MuLi)亚马逊首席科学家(PrincipalScientist),加州大学伯克利分校客座助理教授,美国卡内基梅隆大学计算机系博士。他专注于分布式系统和机器学习算法的研究。他是深度学习框架MXNet的作者之一。他曾任机器学习创业公司MarianasLabs的CTO和百度深度学习研究院的主任研发架构师。他在理论、机器学习、应用和操作系统等多个领域的顶级学术会议(包括FOCS、ICML、NeurIPS、AISTATS、CVPR、KDD、WSDM、OSDI)上发表过论文。扎卡里·C.立顿(ZacharyC.Lipton)亚马逊应用科学家,美国卡内基梅隆大学助理教授,美国加州大学圣迭戈分校博士。他专注于机器学习算法及其社会影响的研究,特别是在时序数据与序列决策上的深度学习。这类工作有着广泛的应用场景,包括医疗诊断、对话系统和产品推荐。他创立了博客“ApproximatelyCorrect”(approximatelycorrect.com)。亚历山大·J.斯莫拉(AlexanderJ.Smola)亚马逊副总裁/杰出科学家,德国柏林工业大学计算机科学博士。他曾在澳大利亚国立大学、美国加州大学伯克利分校和卡内基梅隆大学任教。他发表了超过200篇学术论文,并著有5本书,其论文及书被引用超过10万次。他的研究兴趣包括深度学习、贝叶斯非参数、核方法、统计建模和可扩展算法。