1.数据结构
使用pytorch需要将数据转换成模型需要的数据格式,数据格式包括单个数据对应的scalar格式,表示特征的vector格式,对应矩阵的matrix格式,对应多维数据的n-ddimensional tensor格式。数据转化有以下的方式。
'''使用tnesor进行数据转换'''
import torch
torch.tensor(input_features[start:end]
'''使用TensorDataset,DataLoader 进行数据格式修改'''
from torch.utils.data import TensorDataset
from torch.utils.data import DataLoader
bs = 64 #数据分组大小
train_ds = TensorDataset(x_train , y_train) #将数据封装成tensor的格式
train_dl = DataLoader(train_ds,batch_size=bs ,shuffle=True) #将数据安装batch_size的方式分割
for xb,yb in train_dl: #这里可以直接调用
loss_batch(model,loss_func,xb,yb,opt)
2.主要的包
1. torch.nn.Module
在建立模型的基本结构时使用,主要在建立模型有参数的结构时使用,比如建立模型的全链接层和池化层的时候使用,同时在定义模型的基本结构时作为继承的父类使用。
2. torch.nn.functional
在建立模型的基本结构时使用,主要在建立模型没有参数的结构时使用,比如建立模型的激活函数,损失函数时候使用
class Mnist_NN(nn.Module): # 建立模型的基本结构时需要
def __init__(self):
super().__init__()
self.hidden1 = nn.Linear(784,128) # 建立全链接层时需要
self.hidden2 = nn.Linear(128,256)
self.out = nn.Linear(256,10)
def forward(self,x):
x = F.relu(self.hidden1(x)) #建立激活函数时需要
x = F.relu(self.hidden2(x))
x = self.out(x)
return x
3 以较为复杂方式实现回归
import pandas as pd
import numpy as np
import torch
from sklearn import preprocessin