中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

武漢網(wǎng)站制作公司電話百度關(guān)鍵詞優(yōu)化是什么意思

武漢網(wǎng)站制作公司電話,百度關(guān)鍵詞優(yōu)化是什么意思,大連 手機(jī)網(wǎng)站案例,做娛樂網(wǎng)站彩票代理原文作者:我輩李想 版權(quán)聲明:文章原創(chuàng),轉(zhuǎn)載時(shí)請務(wù)必加上原文超鏈接、作者信息和本聲明。 文章目錄 前言一、Anaconda 中安裝 PyTorch 和 CUDA二、檢查PyTorch和CUDA版本三、PyTorch的基本使用四、PyTorch調(diào)用cuda五、Matplotlib繪制Pytorch損…

原文作者:我輩李想
版權(quán)聲明:文章原創(chuàng),轉(zhuǎn)載時(shí)請務(wù)必加上原文超鏈接、作者信息和本聲明。


文章目錄

  • 前言
  • 一、Anaconda 中安裝 PyTorch 和 CUDA
  • 二、檢查PyTorch和CUDA版本
  • 三、PyTorch的基本使用
  • 四、PyTorch調(diào)用cuda
  • 五、Matplotlib繪制Pytorch損失函數(shù)和準(zhǔn)確率
  • 六、tesorbrand顯示圖像
  • 七、用Pytorch寫一個(gè)卷積神經(jīng)網(wǎng)絡(luò)
  • 八、用Pytorch寫一個(gè)目標(biāo)檢測模型


前言

PyTorch是一個(gè)開源的Python深度學(xué)習(xí)框架,可以用于構(gòu)建各種類型的神經(jīng)網(wǎng)絡(luò)模型。

一、Anaconda 中安裝 PyTorch 和 CUDA

  1. 首先下載并安裝適用于您系統(tǒng)的 Anaconda 版本。

  2. 打開 Anaconda Prompt 或命令行工具,并創(chuàng)建一個(gè)名為“pytorch”或任何其他您喜歡的環(huán)境,此處假設(shè)您使用的是 Anaconda 4.5 或更高版本:

conda create -n pytorch python=3.7 anaconda
  1. 激活新環(huán)境:
conda activate pytorch
  1. 安裝 PyTorch:
conda install pytorch torchvision torchaudio cudatoolkit=11.1 -c pytorch -c nvidia

此命令將安裝適用于 CUDA 11.1 的 PyTorch 和 TorchVision,以及適用于 CUDA 11.1 的 CUDA 工具包。

  1. 驗(yàn)證 PyTorch 安裝是否成功:
python -c "import torch; print(torch.__version__)"

如果成功安裝,這將打印 PyTorch 的版本號。

二、檢查PyTorch和CUDA版本

可以使用以下命令:

import torchprint(torch.__version__)
print(torch.version.cuda)

這將打印出您正在使用的PyTorch和CUDA版本。

三、PyTorch的基本使用

示例

PyTorch是一個(gè)開源的Python深度學(xué)習(xí)框架,可以用于構(gòu)建各種類型的神經(jīng)網(wǎng)絡(luò)模型。要使用PyTorch,您需要首先安裝它??梢允褂靡韵旅钤诮K端中安裝PyTorch:

pip install torch

然后,您可以在Python腳本中導(dǎo)入PyTorch并開始使用它。例如,要構(gòu)建一個(gè)簡單的全連接神經(jīng)網(wǎng)絡(luò),可以使用以下代碼:

import torch
import torch.nn as nn# Define the neural network model
class Net(nn.Module):def __init__(self):super(Net, self).__init__()self.fc1 = nn.Linear(784, 256)self.fc2 = nn.Linear(256, 10)def forward(self, x):x = x.view(-1, 784)x = torch.relu(self.fc1(x))x = self.fc2(x)return x# Instantiate the model and define the loss function and optimizer
net = Net()
criterion = nn.CrossEntropyLoss()
optimizer = torch.optim.SGD(net.parameters(), lr=0.01)# Load the data and train the model
for epoch in range(10):for i, (inputs, labels) in enumerate(train_loader, 0):optimizer.zero_grad()outputs = net(inputs)loss = criterion(outputs, labels)loss.backward()optimizer.step()# Evaluate the trained model on the test set
correct = 0
total = 0
with torch.no_grad():for inputs, labels in test_loader:outputs = net(inputs)_, predicted = torch.max(outputs.data, 1)total += labels.size(0)correct += (predicted == labels).sum().item()
print('Accuracy: %d %%' % (100 * correct / total))

在這個(gè)例子中,我們定義了一個(gè)簡單的全連接神經(jīng)網(wǎng)絡(luò),使用MNIST數(shù)據(jù)集進(jìn)行訓(xùn)練和測試。我們使用PyTorch內(nèi)置的nn.Module類來定義神經(jīng)網(wǎng)絡(luò)模型,并在forward方法中定義正向傳播的操作。我們使用交叉熵?fù)p失函數(shù)和隨機(jī)梯度下降(SGD)優(yōu)化器來訓(xùn)練模型。我們使用訓(xùn)練數(shù)據(jù)集中的數(shù)據(jù)來更新模型參數(shù),并使用測試數(shù)據(jù)集來評估模型的準(zhǔn)確性。

四、PyTorch調(diào)用cuda

在PyTorch中使用CUDA可以大大加速訓(xùn)練和推理過程。以下是使用CUDA的幾個(gè)步驟:

  1. 檢查CUDA是否可用:
import torchif torch.cuda.is_available():device = torch.device("cuda")          # 如果GPU可用,則使用CUDA
else:device = torch.device("cpu")           # 如果GPU不可用,則使用CPU
  1. 將模型和數(shù)據(jù)加載到CUDA設(shè)備:
model.to(device)
inputs, labels = inputs.to(device), labels.to(device)
  1. 將數(shù)據(jù)轉(zhuǎn)換為CUDA張量:
inputs = inputs.cuda()
labels = labels.cuda()
  1. 在訓(xùn)練過程中,使用CUDA加速計(jì)算:
for inputs, labels in dataloader:inputs, labels = inputs.to(device), labels.to(device)optimizer.zero_grad()outputs = model(inputs)loss = criterion(outputs, labels)loss.backward()optimizer.step()

請注意,在使用CUDA時(shí),您需要確保您的計(jì)算機(jī)具有兼容的GPU和正確的CUDA和cuDNN版本。您可以在PyTorch的官方文檔中找到更多詳細(xì)信息。

五、Matplotlib繪制Pytorch損失函數(shù)和準(zhǔn)確率

在Pytorch中,我們可以使用Matplotlib來繪制訓(xùn)練過程中的損失函數(shù)曲線、準(zhǔn)確率曲線等。下面是一個(gè)簡單的示例:

import matplotlib.pyplot as plt# 定義損失函數(shù)和準(zhǔn)確率列表
train_losses = [0.1, 0.08, 0.05, 0.03, 0.02]
train_accs = [90, 92, 95, 97, 98]# 繪制損失函數(shù)曲線
plt.plot(train_losses, label='Train Loss')
plt.xlabel('Epoch')
plt.ylabel('Loss')
plt.legend()
plt.show()# 繪制準(zhǔn)確率曲線
plt.plot(train_accs, label='Train Accuracy')
plt.xlabel('Epoch')
plt.ylabel('Accuracy')
plt.legend()
plt.show()

運(yùn)行后會分別顯示訓(xùn)練過程中的損失函數(shù)曲線和準(zhǔn)確率曲線。我們可以根據(jù)自己的需要調(diào)整圖表的樣式和參數(shù),例如修改線條顏色、線條寬度、坐標(biāo)軸范圍等。

六、tesorbrand顯示圖像

PyTorch下的Tensorboard 使用

七、用Pytorch寫一個(gè)卷積神經(jīng)網(wǎng)絡(luò)

下面是一個(gè)簡單的卷積神經(jīng)網(wǎng)絡(luò)(CNN)的實(shí)現(xiàn),用PyTorch框架來訓(xùn)練MNIST手寫數(shù)字識別數(shù)據(jù)集。

首先,您需要導(dǎo)入所需的庫和模塊,如下所示:

import torch
import torch.nn as nn
import torch.optim as optim
import torch.nn.functional as F
from torchvision import datasets, transforms

接下來,您需要定義網(wǎng)絡(luò)的架構(gòu)。這個(gè)CNN有兩個(gè)卷積層,一個(gè)最大池化層和兩個(gè)全連接層。代碼如下:

class Net(nn.Module):def __init__(self):super(Net, self).__init__()# 輸入為28*28*1self.conv1 = nn.Conv2d(1, 10, kernel_size=5)# 輸入為24*24*10self.conv2 = nn.Conv2d(10, 20, kernel_size=5)# 輸入為20*20*20self.mp = nn.MaxPool2d(2)# 輸入為10*10*20self.fc1 = nn.Linear(320, 50)self.fc2 = nn.Linear(50, 10)def forward(self, x):x = F.relu(self.mp(self.conv1(x)))x = F.relu(self.mp(self.conv2(x)))x = x.view(-1, 320)x = F.relu(self.fc1(x))x = self.fc2(x)return F.log_softmax(x, dim=1)

現(xiàn)在,您需要定義訓(xùn)練函數(shù)和測試函數(shù)。訓(xùn)練函數(shù)將會用來訓(xùn)練模型,而測試函數(shù)將會用來測試模型。代碼如下:

def train(model, device, train_loader, optimizer, epoch):model.train()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()if batch_idx % 100 == 0:print('Train Epoch: {} [{}/{} ({:.0f}%)]\tLoss: {:.6f}'.format(epoch, batch_idx * len(data), len(train_loader.dataset),100. * batch_idx / len(train_loader), loss.item()))def test(model, device, test_loader):model.eval()test_loss = 0correct = 0with 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()pred = output.argmax(dim=1, keepdim=True)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)))

接下來,您需要加載數(shù)據(jù)集和定義訓(xùn)練和測試參數(shù)。代碼如下:

batch_size = 64train_transforms = transforms.Compose([transforms.ToTensor(),transforms.Normalize((0.1307,), (0.3081,))
])test_transforms = transforms.Compose([transforms.ToTensor(),transforms.Normalize((0.1307,), (0.3081,))
])train_dataset = datasets.MNIST('./data', train=True, download=True, transform=train_transforms)
test_dataset = datasets.MNIST('./data', train=False, transform=test_transforms)train_loader = torch.utils.data.DataLoader(train_dataset, batch_size=batch_size, shuffle=True)
test_loader = torch.utils.data.DataLoader(test_dataset, batch_size=batch_size, shuffle=False)use_cuda = torch.cuda.is_available()
device = torch.device("cuda" if use_cuda else "cpu")model = Net().to(device)
optimizer = optim.SGD(model.parameters(), lr=0.01, momentum=0.5)

最后,您需要在循環(huán)中訓(xùn)練和測試模型。代碼如下:

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

這是一個(gè)簡單的CNN的實(shí)現(xiàn),用PyTorch訓(xùn)練MNIST數(shù)據(jù)集。您可以調(diào)整模型的超參數(shù),例如學(xué)習(xí)率、動量等,來提高模型的準(zhǔn)確性和性能。

八、用Pytorch寫一個(gè)目標(biāo)檢測模型

下面是一個(gè)基于PyTorch的目標(biāo)檢測模型的實(shí)現(xiàn),使用Faster R-CNN網(wǎng)絡(luò),并使用COCO數(shù)據(jù)集進(jìn)行訓(xùn)練和測試。

首先,您需要導(dǎo)入所需的庫和模塊,如下所示:

import torch
import torchvision
import torchvision.transforms as transforms
import torch.utils.data
import numpy as np
import matplotlib.pyplot as plt
import time
import os
import json
import torch.utils.data as data
from torchvision.datasets import CocoDetection
import torchvision.transforms.functional as F
import torch.nn as nn
import torch.optim as optim
from torchvision.models.detection import FasterRCNN
from torchvision.models.detection.rpn import AnchorGenerator
from torchvision.models.detection.backbone_utils import resnet_fpn_backbone
from torchvision.ops import MultiScaleRoIAlign

接下來,您需要定義數(shù)據(jù)轉(zhuǎn)換和數(shù)據(jù)集類,以加載和預(yù)處理COCO數(shù)據(jù)集。代碼如下:

class Compose(object):def __init__(self, transforms):self.transforms = transformsdef __call__(self, img, target):for t in self.transforms:img, target = t(img, target)return img, targetclass RandomHorizontalFlip(object):def __init__(self, probability=0.5):self.probability = probabilitydef __call__(self, img, target):if np.random.rand() < self.probability:img = F.hflip(img)target["boxes"][:, [0, 2]] = img.width - target["boxes"][:, [2, 0]]return img, targetclass Resize(object):def __init__(self, max_size=900, min_size=600):self.max_size = max_sizeself.min_size = min_sizedef __call__(self, img, target):w, h = img.sizesize = self.min_sizeif w < h and max(h, w * size / w) <= self.max_size:size = int(w * size / w)elif max(h, w * size / h) <= self.max_size:size = int(h * size / h)img = F.resize(img, (size, size))target["boxes"][:, :4] *= size / self.min_sizereturn img, targetclass ToTensor(object):def __call__(self, img, target):img = F.to_tensor(img)return img, targetclass COCODataset(data.Dataset):def __init__(self, data_dir, set_name='train', transform=None):super().__init__()self.data_dir = data_dirself.images_dir = os.path.join(data_dir, set_name)self.set_name = set_nameself.transform = transformself.coco = CocoDetection(self.images_dir, os.path.join(data_dir, f'{set_name}.json'))def __getitem__(self, index):image, target = self.coco[index]image_id = self.coco.ids[index]if self.transform is not None:image, target = self.transform(image, target)return image, target, image_iddef __len__(self):return len(self.coco)

接下來,您需要定義模型的架構(gòu)。這個(gè)Faster R-CNN網(wǎng)絡(luò)使用ResNet-50 FPN作為骨干網(wǎng)絡(luò)。代碼如下:

class FasterRCNNResNetFPN(nn.Module):def __init__(self, num_classes):super(FasterRCNNResNetFPN, self).__init__()self.num_classes = num_classesbackbone = resnet_fpn_backbone('resnet50', pretrained=True)anchor_generator = AnchorGenerator(sizes=((32, 64, 128, 256, 512),),aspect_ratios=((0.5, 1.0, 2.0),))roi_pooler = MultiScaleRoIAlign(featmap_names=['0', '1', '2', '3'],output_size=7,sampling_ratio=2)self.model = FasterRCNN(backbone,num_classes=num_classes + 1,rpn_anchor_generator=anchor_generator,box_roi_pool=roi_pooler)def forward(self, x, targets=None):if self.training and targets is None:raise ValueError("In training mode, targets should be passed")elif not self.training and targets is not None:raise ValueError("In inference mode, targets should not be passed")else:return self.model(x, targets)

現(xiàn)在,您需要設(shè)置訓(xùn)練和測試的超參數(shù)并進(jìn)行模型訓(xùn)練。代碼如下:

batch_size = 2
num_workers = 2
num_epochs = 10data_dir = '/path/to/coco'train_transforms = Compose([Resize(min_size=600, max_size=900),RandomHorizontalFlip(),ToTensor()])
test_transforms = Compose([Resize(min_size=800, max_size=1333),ToTensor()])train_dataset = COCODataset(data_dir, set_name='train', transform=train_transforms)
test_dataset = COCODataset(data_dir, set_name='val', transform=test_transforms)train_loader = data.DataLoader(train_dataset, batch_size=batch_size, shuffle=True, num_workers=num_workers, collate_fn=lambda x: tuple(zip(*x)))
test_loader = data.DataLoader(test_dataset, batch_size=batch_size, shuffle=False, num_workers=num_workers, collate_fn=lambda x: tuple(zip(*x)))num_classes = 80device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')model = FasterRCNNResNetFPN(num_classes=num_classes).to(device)optimizer = optim.SGD(model.parameters(), lr=0.01, momentum=0.9, weight_decay=0.0005)def train_one_epoch(model, optimizer, data_loader, device, epoch):model.train()train_loss = 0.0start_time = time.time()for step, (images, targets, image_ids) in enumerate(data_loader):images = [img.to(device) for img in images]targets = [{k: v.to(device) for k, v in t.items()} for t in targets]loss_dict = model(images, targets)losses = sum(loss_dict.values())train_loss += losses.item()optimizer.zero_grad()losses.backward()optimizer.step()if step % 10 == 0:print(f'Epoch: [{epoch}/{num_epochs}] Step: [{step}/{len(data_loader)}] Loss: {losses.item()}')train_loss /= len(data_loader)end_time = time.time()print(f'Training Loss: {train_loss} Time: {end_time - start_time}')def evaluate(model, data_loader, device):model.eval()results = []for images, targets, image_ids in data_loader:images = [img.to(device) for img in images]targets = [{k: v.to(device) for k, v in t.items()} for t in targets]with torch.no_grad():outputs = model(images)for i, (output, target) in enumerate(zip(outputs, targets)):result = {'image_id': image_ids[i],'boxes': output['boxes'].detach().cpu().numpy(),'scores': output['scores'].detach().cpu().numpy(),'labels': output['labels'].detach().cpu().numpy(),}target = {'image_id': image_ids[i],'boxes': target['boxes'].cpu().numpy(),'labels': target['labels'].cpu().numpy(),}results.append((result, target))return resultsfor epoch in range(num_epochs):train_one_epoch(model, optimizer, train_loader, device, epoch)results = evaluate(model, test_loader, device)

這是一個(gè)使用PyTorch實(shí)現(xiàn)的目標(biāo)檢測模型的示例,使用Faster R-CNN網(wǎng)絡(luò)和COCO數(shù)據(jù)集進(jìn)行訓(xùn)練和測試。您可以根據(jù)需要調(diào)整模型的超參數(shù),以提高模型的準(zhǔn)確性和性能。

http://m.risenshineclean.com/news/60352.html

相關(guān)文章:

  • 今日軍事報(bào)道重慶關(guān)鍵詞優(yōu)化平臺
  • web個(gè)人網(wǎng)頁模板淮安網(wǎng)站seo
  • 網(wǎng)站錨點(diǎn)鏈接怎么做南京網(wǎng)絡(luò)推廣外包
  • 網(wǎng)站規(guī)劃主要內(nèi)容開網(wǎng)店哪個(gè)平臺靠譜
  • 專門制作視頻的軟件視頻優(yōu)化軟件
  • wordpress創(chuàng)建知識庫seo網(wǎng)站優(yōu)化培訓(xùn)要多少錢
  • 政府部門網(wǎng)站建設(shè)推廣文案
  • 檔案網(wǎng)站建設(shè)網(wǎng)頁百度廣告怎么收費(fèi)標(biāo)準(zhǔn)
  • 企業(yè)網(wǎng)站建設(shè) 新聞宣傳關(guān)鍵詞有哪些
  • 分類網(wǎng)站建設(shè)國內(nèi)網(wǎng)站建設(shè)公司
  • 孕婦做兼職上哪家網(wǎng)站深圳網(wǎng)絡(luò)推廣建站
  • 網(wǎng)站建設(shè) 核對流程網(wǎng)站seo優(yōu)化服務(wù)
  • 電商類網(wǎng)站開發(fā)百度指數(shù)怎么提升
  • 網(wǎng)站開發(fā)實(shí)戰(zhàn)教程保定seo推廣公司
  • 成人大專報(bào)考條件seo 重慶
  • wordpress大數(shù)據(jù)插件搜索引擎優(yōu)化代理
  • 大學(xué)培訓(xùn)中心網(wǎng)站建設(shè)系統(tǒng)清理優(yōu)化工具
  • 濟(jì)南行知網(wǎng)站建設(shè)全國唯一一個(gè)沒有疫情的城市
  • 數(shù)字中國建設(shè)峰會 官方網(wǎng)站seo引擎優(yōu)化方案
  • 網(wǎng)站設(shè)計(jì)開發(fā)中的具體步驟站長之家域名信息查詢
  • 做mg動畫賺錢網(wǎng)站小紅書seo
  • 網(wǎng)站上的圖片一般多大網(wǎng)站統(tǒng)計(jì)系統(tǒng)
  • 地方生活門戶網(wǎng)站名稱網(wǎng)站運(yùn)營與維護(hù)
  • 淮北做網(wǎng)站公司百度經(jīng)驗(yàn)官網(wǎng)首頁
  • 注冊公司域名后如何做網(wǎng)站愛站網(wǎng)域名查詢
  • 軟件工程分為幾個(gè)階段網(wǎng)站seo入門基礎(chǔ)教程書籍
  • 做網(wǎng)站做地區(qū)好還是全國的好處谷歌seo搜索引擎
  • 可以看任何東西的瀏覽器seo是什么車
  • 淄博建設(shè)局網(wǎng)站網(wǎng)站推廣關(guān)鍵詞工具
  • 合肥專業(yè)手機(jī)網(wǎng)站制作價(jià)格網(wǎng)站流量統(tǒng)計(jì)分析