117.info
人生若只如初见

PyTorch在Ubuntu上如何进行模型训练

?Ubuntu???PyTorch??????,??????????:

??PyTorch

  1. ?????????: ????CUDA??(????NVIDIA GPU),?????PyTorch????????PyTorch????????????

    # ??,??CUDA 11.7 pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117 
  2. ????: ??Python????????PyTorch??????????

    import torch print(torch.__version__) print(torch.cuda.is_available()) # ???GPU,????True 

?????

  1. ?????: ????PyTorch??????,??????????

    from torchvision import datasets, transforms # ?????? transform = transforms.Compose([ transforms.ToTensor(), transforms.Normalize((0.5,), (0.5,)) ]) # ??????? train_dataset = datasets.MNIST(root='./data', train=True, download=True, transform=transform) 
  2. ???????: ??DataLoader????????

    from torch.utils.data import DataLoader train_loader = DataLoader(train_dataset, batch_size=64, shuffle=True) 

????

  1. ??PyTorch?nn??????:

    import torch.nn as nn import torch.nn.functional as F class Net(nn.Module): def __init__(self): super(Net, self).__init__() self.conv1 = nn.Conv2d(1, 10, kernel_size=5) self.conv2 = nn.Conv2d(10, 20, kernel_size=5) self.conv2_drop = nn.Dropout2d() self.fc1 = nn.Linear(320, 50) self.fc2 = nn.Linear(50, 10) def forward(self, x): x = F.relu(F.max_pool2d(self.conv1(x), 2)) x = F.relu(F.max_pool2d(self.conv2_drop(self.conv2(x)), 2)) x = x.view(-1, 320) x = F.relu(self.fc1(x)) x = F.dropout(x, training=self.training) x = self.fc2(x) return F.log_softmax(x, dim=1) 

????

  1. ??????????????:

    model = Net() optimizer = torch.optim.SGD(model.parameters(), lr=0.01, momentum=0.5) criterion = nn.CrossEntropyLoss() 
  2. ??????:

    for epoch in range(10): # ????????? running_loss = 0 for i, data in enumerate(train_loader, 0): # ?????? inputs, labels = data # ???? optimizer.zero_grad() # ???? + ???? + ?? outputs = model(inputs) loss = criterion(outputs, labels) loss.backward() optimizer.step() # ?????? running_loss += loss.item() if i % 100 == 99: # ?100?mini-batches???? print('[%d, ]] loss: %.3f' % (epoch + 1, i + 1, running_loss / 100)) running_loss = 0.0 print('Finished Training') 

???????

  1. ????:

    PATH = './cifar_net.pth' torch.save(model.state_dict(), PATH) 
  2. ????:

    model = Net() model.load_state_dict(torch.load(PATH)) 

????

  • ???????????CUDA?cuDNN,???????GPU?????
  • ????????????????????????
  • ??????????????,??????????

??????????????,????????????????????

未经允许不得转载 » 本文链接:https://www.117.info/ask/fea01AzsNBQFeAlM.html

推荐文章

  • ubuntu yum查看已安装软件列表

    在 Ubuntu 系统中,通常使用 apt 包管理工具而不是 yum。Ubuntu 默认使用 apt 来管理软件包。如果你想查看已安装的软件列表,可以使用以下命令: 使用 dpkg 命令...

  • Ubuntu dhclient如何安全使用

    在Ubuntu系统中,dhclient是一个常用的工具,用于从DHCP服务器动态获取IP地址和其他网络配置信息。虽然dhclient本身不是最安全的网络配置工具,但通过合理地配置...

  • Ubuntu PHP日志中慢查询怎么优化

    在Ubuntu系统中,优化PHP慢查询通常涉及到以下几个方面: 分析慢查询日志: 首先,你需要启用并配置PHP的慢查询日志。这通常在php.ini文件中完成,通过设置slow_...

  • Ubuntu如何查看Telnet服务状态

    在Ubuntu系统中,你可以使用以下命令来查看Telnet服务的状态: 使用systemctl命令(适用于使用systemd的系统):
    sudo systemctl status telnet.socket 这个...

  • 如何在Ubuntu系统中安装Trigger

    在Ubuntu系统中安装Trigger,可以按照以下步骤进行:
    方法一:使用APT包管理器 更新软件包列表:
    打开终端并运行以下命令以确保你的软件包列表是最新的...

  • Linux LNMP中MySQL如何优化

    在Linux LNMP(Linux, Nginx, MySQL, PHP)架构中,优化MySQL数据库性能是一个多方面的任务,涉及硬件、操作系统、数据库配置和查询优化等。以下是一些关键的优化...

  • Ubuntu如何分析进程性能瓶颈

    在Ubuntu系统中,分析进程性能瓶颈可以通过多种工具和方法来实现。以下是一些常用的工具和步骤,帮助你定位和解决性能问题。
    常用性能分析工具 top命令:实...

  • 如何彻底清除centos僵尸进程

    要彻底清除 CentOS 中的僵尸进程,可以按照以下步骤操作:
    1. 查找僵尸进程
    首先,使用 ps 命令查找系统中的僵尸进程。僵尸进程通常显示为 Z 状态。