用Conda配置Pytorch环境 (pytorch==2.2.1)

用Conda配置Pytorch环境 (pytorch==2.2.1)

本文主要讲解: 如何用Conda搭建Pytorch环境,用Conda的方式安装,不需要单独去安装Cuda了。

1. 安装miniconda

https://docs.anaconda.com/free/miniconda/index.html
在这里插入图片描述

2. 搭建虚拟环境

激活python虚拟环境

conda create -n env310 python==3.10.14 -y
conda activate env310

安裝Pytorch

conda install pytorch==2.2.1 torchvision==0.17.1 torchaudio==2.2.1 pytorch-cuda=11.8 -c pytorch -c nvidia

安裝常用包

pip install scikit-learn einops ipywidgets pandas tqdm jupyterlab matplotlib seaborn

3. Conda设置清华源

conda config --show channels

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes

4. pip设置清华源

pip config list
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

5. 一个分类网络的例子

测试Pytorch环境是否Okay

conda activate env310
python mnist.py

文件mnist.py内容:

# Task
# Our task is simple, recognize handwritten digits. We will use MNIST dataset for this tutorial.
# 

# # Import necessary library
# In this tutorial, we are going to use pytorch, the cutting-edge deep learning framework to complete our task.

# In[2]:


import torch
import torchvision


# In[3]:


## Create dataloader, in PyTorch, we feed the trainer data with use of dataloader
## We create dataloader with dataset from torchvision, 
## and we dont have to download it seperately, all automatically done

# Define batch size, batch size is how much data you feed for training in one iteration
batch_size_train = 64 # We use a small batch size here for training
batch_size_test = 1024 #

# define how image transformed
image_transform = torchvision.transforms.Compose([
                               torchvision.transforms.ToTensor(),
                               torchvision.transforms.Normalize(
                                 (0.1307,), (0.3081,))
                             ])
#image datasets
train_dataset = torchvision.datasets.MNIST('dataset/', 
                                           train=True, 
                                           download=True,
                                           transform=image_transform)
test_dataset = torchvision.datasets.MNIST('dataset/', 
                                          train=False, 
                                          download=True,
                                          transform=image_transform)
#data loaders
train_loader = torch.utils.data.DataLoader(train_dataset,
                                           batch_size=batch_size_train, 
                                           shuffle=True)
test_loader = torch.utils.data.DataLoader(test_dataset,
                                          batch_size=batch_size_test, 
                                          shuffle=True)


# In[64]:


# import library
# We can check the dataloader
_, (example_datas, labels) = next(enumerate(test_loader))
sample = example_datas[0][0]
# show the data


# In[60]:


## Now we can start to build our CNN model
## We first import the pytorch nn module and optimizer
import torch.nn as nn
import torch.nn.functional as F
import torch.optim as optim
## Then define the model class
class CNN(nn.Module):
    def __init__(self):
        super(CNN, self).__init__()
        #input channel 1, output channel 10
        self.conv1 = nn.Conv2d(1, 10, kernel_size=5, stride=1)
        #input channel 10, output channel 20
        self.conv2 = nn.Conv2d(10, 20, kernel_size=5, stride=1)
        #dropout layer
        self.conv2_drop = nn.Dropout2d()
        #fully connected layer
        self.fc1 = nn.Linear(320, 5000)
        self.fc2 = nn.Linear(5000, 10)
    def forward(self, x):
        x = self.conv1(x)
        x = F.max_pool2d(x, 2)
        x = F.relu(x)
        x = self.conv2(x)
        x = self.conv2_drop(x)
        x = F.max_pool2d(x, 2)
        x = F.relu(x)
        x = x.view(-1, 320)
        x = self.fc1(x)
        x = F.relu(x)
        x = F.dropout(x)
        x = self.fc2(x)
        return F.log_softmax(x)


# In[61]:


## create model and optimizer
learning_rate = 0.01
momentum = 0.5
device = "cuda"
model = CNN().to(device) #using cpu here
optimizer = optim.SGD(model.parameters(), lr=learning_rate,
                      momentum=momentum)


# In[78]:


##define train function
def train(model, device, train_loader, optimizer, epoch, log_interval=10000):
    model.train()
    counter = 0
    for batch_idx, (data, target) in enumerate(train_loader):
        data, target = data.to(device), target.to(device)
        optimizer.zero_grad()
        output = model(data)
        loss = F.nll_loss(output, target)
        loss.backward()
        optimizer.step()
        counter += 1
        
        print("loss:", loss.item())
##define test function
def test(model, device, test_loader):
    model.eval()
    test_loss = 0
    correct = 0
    with torch.no_grad():
        for data, target in test_loader:
            data, target = data.to(device), target.to(device)
            output = model(data)
            test_loss += F.nll_loss(output, target, reduction='sum').item() # sum up batch loss
            pred = output.argmax(dim=1, keepdim=True) # get the index of the max log-probability
            correct += pred.eq(target.view_as(pred)).sum().item()
    test_loss /= len(test_loader.dataset)

    print('\nTest set: Average loss: {:.4f}, Accuracy: {}/{} ({:.0f}%)\n'.format(
        test_loss, correct, len(test_loader.dataset),
        100. * correct / len(test_loader.dataset)))


# In[79]:


num_epoch = 10
for epoch in range(1, num_epoch + 1):
        train(model, device, train_loader, optimizer, epoch)
        test(model, device, test_loader)


# In[70]:

# from torchsummary import summary
# summary(model, (1, 28, 28))

END


<think>好的,我需要帮助用户了解如何在Linux环境下通过Miniconda安装PyTorch。首先,我应该回忆一下Miniconda的基本用法,以及PyTorch的安装方法。用户提到了两个引用,其中引用了不同的安装命令,一个是针对CPU版本的,另一个是包含CUDA支持的。需要区分这两种情况,并在回答中说明。 首先,我需要确定用户是否了解Miniconda的安装步骤。如果用户已经安装了Miniconda,那么可以直接进入PyTorch的安装步骤。否则,可能需要先指导用户安装Miniconda。不过用户的问题明确是“通过Miniconda安装PyTorch”,所以可能假设Miniconda已经安装好了。 接下来,安装PyTorch通常有两种方式:使用conda命令或者pip命令。但用户特别指定使用Miniconda,所以应优先使用conda命令。需要访问PyTorch官方网站获取最新的安装命令,因为不同版本的PyTorch对应的命令可能不同,尤其是CUDA版本。 根据用户提供的引用,引用[1]是安装CPU版本的PyTorch和torchvision,而引用[2]是安装支持CUDA 11.8的版本。这说明用户可能需要根据是否有NVIDIA GPU来选择不同的安装方式。因此,在回答中应该分情况讨论:CPU版本和GPU版本。 另外,需要确保用户了解如何检查自己的系统是否具备CUDA支持的GPU,以及如何安装相应的驱动。例如,使用nvidia-smi命令查看GPU信息,安装合适版本的NVIDIA驱动和CUDA工具包。 然后,步骤分解可能包括: 1. 确认Miniconda已安装。 2. 创建并激活conda环境(可选但推荐)。 3. 根据硬件选择CPU或GPU版本的安装命令。 4. 验证安装是否成功。 同时,需要注意conda通道(-c pytorch)和可能需要的其他通道(如nvidia)。用户提供的引用[2]中使用了-c pytorch -c nvidia,这可能是因为某些包在nvidia的通道中。 最后,要提醒用户安装完成后进行测试,例如导入torch并检查torch.cuda.is_available()来确认GPU支持是否启用。 需要确保命令的正确性,比如版本号是否最新,或者是否需要指定特定版本。例如,引用[1]中的命令可能已经过时,但用户示例中的引用可能只是示例,实际应推荐用户查看官网获取最新命令。 总结步骤: 1. 安装Miniconda(如果尚未安装)。 2. 创建conda环境。 3. 选择CPU或GPU版本的安装命令。 4. 执行安装。 5. 验证安装。 同时,需要检查LaTeX格式是否正确,比如行内公式用$...$,独立公式用$$...$$,但在这个问题中可能用不上太多数学公式,但如果有版本号或代码块需要正确格式化。例如,版本号如PyTorch 2.2.1需要用行内代码标记,而不是LaTeX。 可能生成的相关问题包括如何创建conda环境,如何选择PyTorch版本,如何解决安装中的依赖问题等。</think>### 在Linux下通过Miniconda安装PyTorch的步骤 #### 1. 安装Miniconda(如未安装) - 下载Miniconda安装脚本: ```bash wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh ``` - 运行安装脚本: ```bash bash Miniconda3-latest-Linux-x86_64.sh ``` - 按照提示完成安装后,初始化conda: ```bash source ~/.bashrc ``` #### 2. 创建并激活conda环境(推荐) ```bash conda create --name pytorch_env python=3.9 # 创建名为pytorch_env的环境,指定Python版本 conda activate pytorch_env # 激活环境 ``` #### 3. 选择安装命令(CPU或GPU版本) - **CPU版本**(无NVIDIA GPU时使用): ```bash conda install pytorch torchvision torchaudio cpuonly -c pytorch ``` 此命令会安装PyTorch及其相关库的CPU版本[^1]。 - **GPU版本**(需NVIDIA GPU且已安装CUDA驱动): 检查CUDA版本(假设已安装): ```bash nvidia-smi # 查看右上角CUDA版本(如11.8) ``` 安装对应CUDA版本的PyTorch(以CUDA 11.8为例): ```bash conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia ``` 此命令通过`pytorch`和`nvidia`通道安装支持CUDA 11.8的版本[^2]。 #### 4. 验证安装 启动Python解释器并运行: ```python import torch print(torch.__version__) # 查看PyTorch版本 print(torch.cuda.is_available()) # 输出True表示GPU支持已启用 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

且漫CN

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值