开发者社区> 问答> 正文

3090显卡怎么对比?

3090显卡怎么对比?

展开
收起
提问的橘子 2024-07-18 17:50:05 51 0
1 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    image.png

    核心规格:

    拥有 10496 个 CUDA 核心。
    24GB GDDR6X 显存,带宽为 936GB/s。
    基础频率为 1.47 GHz,加速频率为 1.86 GHz

    image.png
    搭载 82 个第二代 RT Core,光线追踪性能出色。
    第三代 Tensor Core 提供高效的 DLSS 性能,但在某些情况下提升幅度不如预期。

    image.png

    利用 RTX 3090 的强大计算能力:

    import torch
    import torch.nn as nn
    import torch.optim as optim
    from torchvision import datasets, transforms
    
    # 定义一个简单的神经网络
    class Net(nn.Module):
        def __init__(self):
            super(Net, self).__init__()
            self.conv1 = nn.Conv2d(1, 32, 3, 1)
            self.conv2 = nn.Conv2d(32, 64, 3, 1)
            self.dropout1 = nn.Dropout2d(0.25)
            self.dropout2 = nn.Dropout2d(0.5)
            self.fc1 = nn.Linear(9216, 128)
            self.fc2 = nn.Linear(128, 10)
    
        def forward(self, x):
            x = self.conv1(x)
            x = nn.ReLU()(x)
            x = self.conv2(x)
            x = nn.ReLU()(x)
            x = nn.MaxPool2d(2)(x)
            x = self.dropout1(x)
            x = torch.flatten(x, 1)
            x = self.fc1(x)
            x = nn.ReLU()(x)
            x = self.dropout2(x)
            x = self.fc2(x)
            output = nn.LogSoftmax(dim=1)(x)
            return output
    
    # 实例化网络
    net = Net()
    
    # 加载数据集
    transform = transforms.Compose([
        transforms.ToTensor(),
        transforms.Normalize((0.1307,), (0.3081,))
    ])
    trainset = datasets.MNIST('~/.pytorch/MNIST_data/', download=True, train=True, transform=transform)
    trainloader = torch.utils.data.DataLoader(trainset, batch_size=64, shuffle=True)
    
    # 定义损失函数和优化器
    criterion = nn.CrossEntropyLoss()
    optimizer = optim.SGD(net.parameters(), lr=0.01, momentum=0.9)
    
    # 训练网络
    for epoch in range(10):  # loop over the dataset multiple times
        running_loss = 0.0
        for i, data in enumerate(trainloader, 0):
            inputs, labels = data
            optimizer.zero_grad()
            outputs = net(inputs)
            loss = criterion(outputs, labels)
            loss.backward()
            optimizer.step()
            running_loss += loss.item()
        print(f'Epoch {epoch + 1}, Loss: {running_loss / len(trainloader)}')
    
    2024-07-19 08:39:59
    赞同 5 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载