***一、python两大函数:***
1、dir():打开,看见
2、help():说明书
dir(pytorch)
输出:1、2、3、4
dir(pytorch.3)
输出:a、b、c
help(pytorch.3.a)
总结:dir函数:能让我们知道工具箱以及工具箱中的分隔区有什么东西
help函数:能让我们知道每个工具是如何使用的,工具的使用方法。
二、 jupyter使用:
1、打开conda promt
激活pytorch的环境:1、输入conda activate pytorch
查看有无ipykernel包(pip list
),如果没有需要安装conda install nb_conda
打开notebook: 2、输入jupyter notebook
2、找到你在pycharm的新建工程路径,注意如果你的环境变量在c盘,那么jupyter只能连接c盘的路径
3、然后创建一个新的文件python [conda env:pytorch]
如果你想在其他盘创建:切换到其他盘,在输入jupyter notebook:
如下:
多行输入:shift +enter
输出:shift+回车
导出函数的意思:函数?
scipy.signal.convolve2d?
三、pytorch 如何加载数据:
Dataset:提供一种方式去获取数据及其label
功能:如何获取每一个数据及其label,告诉我们总共有多少的数据
Dataloader:为后面的网络提供不同的数据形式
pycharm:直接ctrl + 左键可以输出这个函数的作用
jupyter: help(函数)
四、tensorboard的使用
1、tensorboard之SummaryWriter的使用
主要用到两个方法:
add_image与add_scalar
add_scalar参数:
tag:数据标识符,有点类似与画出的图表title
scalar_value:需要保存的数值,相当于y轴
global——step:相当于x轴
例子:
from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter('logs')#对summmary进行一个实例对象。
for i in range(100):
writer.add_scalar("y=x",i,i)
# writer.add_scalar("y=2x",2*i,i)
writer.close()
在终端输入tensorboard --logdir=logs
出现:
默认端口:6006,如果你想指定端口tensorboard --logdir=logs --port=6007
浏览器出现以下窗口:
add_image参数:
tag:tag:数据标识符,有点类似与画出的图表title
img_tensor (torch.Tensor, numpy.array, or string/blobname): Image data
dataformats:Default is :math:(3, H, W)
.,如果你的图像类型是其他的比如(H,W,3),只需要加一个dataformats=‘CHW’
例子:
from torch.utils.tensorboard import SummaryWriter
from PIL import Image
import numpy as np
img_path = r"E:\code\python_code\pytorch_study\train\ants_image\0013035.jpg"
writer = SummaryWriter('logs')
img_PIL = Image.open(img_path)
img_ndarry = np.array(img_PIL)
writer.add_image('test',img_ndarry,1, dataformats='HWC')
for i in range(100):
writer.add_scalar("y=2x",3*i,i)
writer.close()
结果如下:
3、add_graph见链接:https://blog.csdn.net/YQyq1021/article/details/120980640
五:Transforms的使用
compose用法:compose中的参数需要是一个列表,python中,列表的表示形式为【数据1,数据2,…】,在compose中,数据需要时transforms类型,所以得到compose([transforms参数1,transforms参数2,…]
from torchvision import transforms
from PIL import Image
from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter('logs')
img_path = r"E:\code\python_code\pytorch_study\train\ants_image\0013035.jpg"
img_PIL = Image.open(img_path)
print(img_PIL.size)
#transforms.ToTensor()的使用
# Convert a ``PIL Image`` or ``numpy.ndarray`` to tensor. This transform does not support torchscript.
trans_totensor = transforms.ToTensor()#实例化对象
tensor_img = trans_totensor(img_PIL)
writer.add_image('tensor_img',tensor_img)
#transforms.Normalize()的使用
#Normalize a tensor image with mean and standard deviation.
tensor_norm = transforms.Normalize([0.5,0.5,0.5],[0.5,0.5,0.5])
img_norm = tensor_norm(tensor_img)
writer.add_image('img_norm',img_norm)
#transfrom.resize
#"Resize the input image to the given size.
trans_resize = transforms.Resize((512, 512))
img_resize = trans_resize(img_PIL)#由于img——resize的数据类型为
#,如果想要writer.add_image的话
#必须转换为tensor数据类型
#函数transform,TOtensor可以将其转换
img_resize = trans_totensor(img_resize)
writer.add_image('img_resize',img_resize,0)
writer.close()
import torchvision
from torch.utils.tensorboard import SummaryWriter
dataset_transform = torchvision.transforms.Compose([torchvision.transforms.ToTensor()])
#下载数据集
train_set = torchvision.datasets.CIFAR10(root='./dataset',train=True,transform=dataset_transform,download=False)
test_set = torchvision.datasets.CIFAR10(root='./dataset',train=False,transform=dataset_transform,download=False)
print(test_set[0])
writer = SummaryWriter('p14')
for i in range(10):
img, target = train_set[i]
writer.add_image('train_dataset',img,i)
writer.close()
如果下载太慢的话,可以使用迅雷下载,然后保存到该目录下的dataset里面。
七:dataloader的使用
import torchvision
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter
dataset_transform = torchvision.transforms.Compose([torchvision.transforms.ToTensor()])
train_set = torchvision.datasets.CIFAR10(root='./dataset',train=True,transform=dataset_transform,download=False)
test_set = torchvision.datasets.CIFAR10(root='./dataset',train=False,transform=dataset_transform,download=False)
test_loader = DataLoader(dataset=test_set,batch_size=64,shuffle=True,num_workers=0,drop_last=False)
writer = SummaryWriter('dataloader')
step = 0
for data in test_loader:
img, target = data
writer.add_images('test_data',img,step)
step= step + 1
writer.close()
注意:如果tensorboard出现
No dashboards are active for the current data set.
第一步:先运行自己的代码
第二步:检查程序中的writer.close有没有