pytorch—dadaset/tensorboard的使用

dataset

1.定义一个类传入dataset
2.要完成getitem方法,返回img和label
3.len方法,返回

tensorboard

from torch.utils.tensorboard import summarywriter
1.写日志summarywriter(“log”)
2.add_scalar()
参数:title,y值,步长
3.打开tensorboard
在命令行执行,tensorboard --logdir=log --port=6007
4.在tensorboard中添加图片,add_image()
imge.open函数打开图片,利用np.array将imag图片转化为数组
add_image的参数:tag,image,dataform=hwc

transforms

from torchvision import transforms
1.函数transforms.totensor():将图片转化为tensor数据类型
使用:首先创建具体的工具tool=transforms.totensor()
然后使用工具result=tool(input)

常见的transforms

1.totensor
2.nomalize(均值,标准差),归一化
3.resize()
4.compose()
compose需要的参数是一个列表,类型是transforms类型,作用是将transforms的工具组合到一起
5.randomcrop()随机裁剪

dataset和transforms联合使用

import torchvision
torchvision.datasets.CIFAR10(位置,是否用来训练,是否自动下载)
小技巧:查看函数参数ctrl+p
查看数据的第一个数据,用索引

dataloader

batch_size:每次采用几个数据
shuffle:是否打乱
num_workers:采用多进程
drop_last:true表示省去最后除不尽的数据

神经网络基本骨架—nn.Module的使用

Module:所有神经网络模块都要继承nn.Module
基本框架:

class Model(nn.Module):
	def __init__(self):
		super(Model,self).__init__()
		自定义代码块
	def forward(self,x)#神经网络的运算函数
		自定义代码块

卷积层convolution layers

nn.conv2d:
权重=卷积核
stride=卷积核的步长,可以是一个数,或者是一个元组(横,纵)

import torch
import torch.nn.functional as F
input=torch.tensor([[1,2,0,3,3],
					[0,1,2,3,1],
					[1,2,1,0,0],
					[5,2,3,1,1],
					[2,1,0,1,1]])
kernel= torch.tensor([[1,2,1],
					  [0,1,0],
					  [2,1,0]])
input = torch.reshape(input,(1,1,5,5))#代表输入输出的通道
kernel = torch.reshape(kernel,(1,1,5,5))
output = F.conv2d(input,kernel,stride)

padding:输入的边缘填充

最大池化nn.maxpool2D

作用:保证数据的特征,减少数据量
kernel_size:池化核
stride:默认值是kernel_size
dilation: 核元素中间插一个
ceil_model:边缘的池化值是否保留

非线性激活

作用:为神经网络引入非线性的特质
nn.relu
nn.sigmoid
参数:对原来的变量是否进行变换;

正则化

作用:加快神经网络的训练速度12232651

你可能感兴趣的:(pytorch,深度学习,python)