Pytorch01 Anaconda配置环境和安装pytorch、Dataset、Tensorboard、transforms

一、相关指令

create -n pytorch python=3.6

conda activate pytorch

pip list

安装pytorch

在conda的控制台

# CUDA 11.0
conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=11.0 -c pytorch

pytorch.org/get-started/previous-versions
在这里找到对应CUDA版本的pytorch

显示是否成功
import torch
torch.cuda.is_available()

进入conda环境安装

//安装jupyter
conda install nb_conda
//查看jupyter说明书
jupyter notebook

可以进入jupyter进行分块运行代码

二、Dataset对象

Dataset 提供一种方式获取数据及其label
Dataset 告诉我们如何获取每一个数据和它的label并且告诉我们总共有多少的数据
Dataloader 为后面的网络提供不同的数据形式

from torch.utils.data import Dataset
from PIL import Image
import os

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)

    def __getitem__(self, item):
        img_name=self.img_path[item]
        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)
base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
root_dir=base_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)

img,label=ants_dataset[2]
print(label)
img.show()

import os

print(os.getcwd())




三、Tensorboard的使用

安装tensorboard
pip install tensorboard

查看日志信息
tensorboard --logdir=logs --port=6007

简单实例

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

# writer.add_image()
# writer.add_scalar()

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

tensorboard 观察图片

import numpy
from torch.utils.tensorboard import SummaryWriter
import numpy as np
from PIL import Image
writer=SummaryWriter("logs")
image=Image.open("C:\\Users\\KerwinWan\\PycharmProjects\\pythonProject\\dataset\\hymenoptera_data\\train\\ants\\175998972.jpg")
image_array=numpy.array(image)
# writer.add_image()
# writer.add_scalar()

print(image_array.shape)
print(type(image_array))
# 改变不同的title值 可以出不同的图片在board上
# 改变step值 可以切换图片
writer.add_image("1",image_array,10,dataformats='HWC')
for i in range(100):
    writer.add_scalar("y=x",i,i)
writer.close()





四、transforms的使用

transforms就是把图片经过处理得到对应的结果,例如totensor、resize等

tensor数据类型介绍

from PIL import Image
from torchvision import transforms
from torch.utils.tensorboard import SummaryWriter

# python的用法 tensor数据类型
# 通过transforms.ToTensor去看两个问题
# 1、transforms该如何使用tensor
# 2、tensor数据类型 相比较普通数据类型有什么区别 为什么需要使用tensor数据类型

# 将图片转为tensor数据类型
img_path="C:\\Users\\KerwinWan\\PycharmProjects\\pythonProject\\dataset\hymenoptera_data\\train\\ants\\0013035.jpg"

img = Image.open(img_path)

print(img)

writer=SummaryWriter("logs")



# 如何使用Tensor
tensor_trans=transforms.ToTensor()

tensor_img=tensor_trans(img)

writer.add_image("Tensor_img",tensor_img)

writer.close()

print(tensor_img)


五、__call__函数的用法

class Person:

    def __call__(self, name):
        print("__call__"+"Hello"+name)
    def hello(self,name):
        print("hello"+name)
person=Person()
# 有了call后直接调用
person("zhangsan")
person.hello("lisi")

六、Normalize归一化

from PIL import Image
from torchvision import transforms
from torch.utils.tensorboard import SummaryWriter

writer=SummaryWriter("logs")
img = Image.open("images/img1.jpg")

print(img)

trans_totensor=transforms.ToTensor()
img_tensor=trans_totensor(img)
writer.add_image("ToTensor",img_tensor)

# Normalize 归一化
# 归一化:input[channel] = (input[channel] - mean[channel]) / std[channel]
trans_norm=transforms.Normalize([0.5,0.5,0.5],[0.5,0.5,0.5])
img_norm=trans_norm(img_tensor)
print(img_norm[0][0])
writer.add_image("Normalize",img_norm)

writer.close()
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值