Pytorch(二)

  • 通过Dataset加载自己的数据集
#加载自己的数据集
dataset = Data.TensorDataset(data_tensor = x, target_tensor = y)
loader = Data.Dataloader(dataset = dataset,
                         batch_size = BATCH_SIZE,
                         ....)

# 这里的loader会返回两个值,feature_data 和 target_data

for epoch in range(3):
    for step, (batch_x, batch_y) in enumerate(loader):
    # enumerate 的作用是给每一步设置了一个索引值
    # batch_x 和 batch_y 对应 loader 的两个返回值
        
        
  • Optimizer

SGD 随机梯度下降:

# SGD
opt_SGD = torch.optim.SGD(model.parameters, lr = LR)

SGD + Momentum:

# Momentum
opt_Momentum = torch.optim.SGD(model.parameters, lr = LR, momentum = 0.8

SGD + Momentum是SGD算法的变形,其中累计了之前的梯度,并影响当前参数的更新

Adam、AdaGrad、AdaDelta

# Adam
opt = torch.optim.Adam(model.parameters, lr=LR, betas=(0.9,0.99)

Adam等算法中,在每个minibatch中有时为每个坐标选择学习率,大大减少了为学习率随时间做调整的需要

RMSprop

# RMSprop
opt = torch.optim.RMSprop(model.parameters, lr=LR, alpha=0.9)

RMSprop和Adam的区别在于累计平方梯度的求法不同,RMSprop算法增加了一个衰减系数来控制历史信息的获取多少,二Adam_Grad是直接累加平方梯度

优化器的调用

output = model(x)
loss = loss_func(output, true)
opt.zero_grad()
loss.backward()
opt.strp()

要进行PyTorch分类任务,首先需要将numpy格式的数组转换成torch格式的张量。可以使用torch.from_numpy()函数进行转换,然后使用.type(torch.FloatTensor)将数组类型转换为浮点型。例如,可以将X数组转换为torch.FloatTensor类型的张量,并命名为X_tensor,同样的方法可以转换Y数组并命名为Y_tensor。代码如下: X_tensor = torch.from_numpy(X).type(torch.FloatTensor) Y_tensor = torch.from_numpy(Y).type(torch.LongTensor) 在PyTorch中,有两种方式可以实现神经网络的非线性化:高层API和低层API。高层API使用torch.nn模块,例如torch.nn.Sigmoid(),而低层API使用torch.nn.functional模块,例如torch.nn.functional.sigmoid()。高层API以类的形式调用,可以保留全连接层的权重矩阵和偏置矩阵作为类的属性。而底层API仅调用类中的函数来进行运算,无法保存这些信息。高层API依赖于低层API的计算功能,例如torch.nn.Linear依赖于F.linear() 。 在搭建神经网络时,可以使用torch.nn.Module类来自定义网络层。例如,可以定义一个neural_net类,继承自torch.nn.Module类,并在__init__()方法中定义网络的结构。可以设置隐藏层的<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [PyTorch搭建神经网络求解分类问题](https://blog.csdn.net/qq_27849725/article/details/123645998)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [PyTorch深度学习——Logistic回归(分类问题)](https://blog.csdn.net/weixin_42603976/article/details/126171385)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值