በግራፊክ ማቀናበሪያ ክፍል (ጂፒዩ) ላይ የመጀመሪያው የነርቭ አውታረ መረብዎ። የጀማሪ መመሪያ

በግራፊክ ማቀናበሪያ ክፍል (ጂፒዩ) ላይ የመጀመሪያው የነርቭ አውታረ መረብዎ። የጀማሪ መመሪያ
በዚህ ጽሑፍ ውስጥ የማሽን መማሪያ አካባቢን በ 30 ደቂቃዎች ውስጥ እንዴት ማዋቀር እንደሚችሉ እነግርዎታለሁ ፣ ለምስል ማወቂያ የነርቭ አውታረ መረብ ይፍጠሩ እና ከዚያ በግራፊክ ፕሮሰሰር (ጂፒዩ) ላይ ተመሳሳይ አውታረ መረብን ያሂዱ።

በመጀመሪያ ፣ የነርቭ አውታረ መረብ ምን እንደሆነ እንገልፃለን።

በእኛ ሁኔታ, ይህ የሂሳብ ሞዴል, እንዲሁም የሶፍትዌር ወይም የሃርድዌር አወቃቀሩ, በአደረጃጀት እና በባዮሎጂካል ነርቭ ኔትወርኮች አሠራር ላይ የተገነባ - የሕያው አካል የነርቭ ሴሎች አውታረ መረቦች. ይህ ጽንሰ-ሐሳብ የተነሳው በአንጎል ውስጥ የሚከሰቱትን ሂደቶች በማጥናት እና እነዚህን ሂደቶች ለመቅረጽ በሚሞክርበት ጊዜ ነው.

የነርቭ ኔትወርኮች በተለመደው የቃሉ ስሜት ፕሮግራም አልተዘጋጁም, የሰለጠኑ ናቸው. የመማር ችሎታ ከባህላዊ ስልተ ቀመሮች ይልቅ የነርቭ ኔትወርኮች ዋነኛ ጥቅሞች አንዱ ነው. በቴክኒክ ፣ መማር በነርቭ ሴሎች መካከል ያለውን የግንኙነት ቅንጅቶችን መፈለግን ያካትታል። በስልጠናው ሂደት ውስጥ የነርቭ አውታረመረብ በግብአት መረጃ እና በውጤት መረጃ መካከል ያሉ ውስብስብ ጥገኞችን መለየት ይችላል, እንዲሁም አጠቃላይነትን ያከናውናል.

ከማሽን መማሪያ እይታ አንጻር የነርቭ ኔትወርክ ልዩ ሁኔታ የስርዓተ-ጥለት ማወቂያ ዘዴዎች, አድሎአዊ ትንተና, ክላስተር ዘዴዎች እና ሌሎች ዘዴዎች ናቸው.

መሣሪያዎች

በመጀመሪያ, መሳሪያዎቹን እንይ. የሊኑክስ ኦፕሬቲንግ ሲስተም የተጫነ አገልጋይ እንፈልጋለን። የማሽን መማሪያ ስርዓቶችን ለመስራት የሚያስፈልጉ መሳሪያዎች በጣም ኃይለኛ እና በውጤቱም, ውድ ናቸው. በእጃቸው ጥሩ ማሽን ለሌላቸው, ለደመና አቅራቢዎች አቅርቦቶች ትኩረት እንዲሰጡ እመክራለሁ. የሚፈለገውን አገልጋይ በፍጥነት መከራየት እና ለአገልግሎት ጊዜ ብቻ መክፈል ይችላሉ።

የነርቭ መረቦችን ለመፍጠር በሚያስፈልግባቸው ፕሮጀክቶች ውስጥ ከሩሲያ ደመና አቅራቢዎች አንዱን አገልጋይ እጠቀማለሁ. ኩባንያው የደመና አገልጋዮችን በኪራይ ያቀርባል በተለይ ለማሽን መማሪያ ከኃይለኛው Tesla V100 ግራፊክስ ፕሮሰሰር (ጂፒዩ) ከ NVIDIA። ባጭሩ፡- ጂፒዩ ያለው አገልጋይ መጠቀም ተመሳሳይ ዋጋ ካለው አገልጋይ ጋር ሲፒዩ (ታዋቂው ማዕከላዊ ፕሮሰሲንግ ዩኒት) ለስሌት ከሚጠቀም በአስር እጥፍ የበለጠ ቀልጣፋ (ፈጣን) ሊሆን ይችላል። ይህ የተገኘው በጂፒዩ ስነ-ህንፃ ባህሪያት ምክንያት ነው, ይህም ስሌቶችን በፍጥነት ይቋቋማል.

ከዚህ በታች የተገለጹትን ምሳሌዎች ለመተግበር የሚከተለውን አገልጋይ ለብዙ ቀናት ገዝተናል።

  • SSD ዲስክ 150 ጂቢ
  • RAM 32 ጊባ
  • Tesla V100 16 Gb ፕሮሰሰር ከ 4 ኮር

ኡቡንቱ 18.04 በኛ ማሽን ላይ ጫንን።

አካባቢን ማዘጋጀት

አሁን በአገልጋዩ ላይ ለስራ አስፈላጊ የሆኑትን ሁሉ እንጭን. ጽሑፋችን በዋነኝነት ለጀማሪዎች ስለሆነ ለእነሱ ጠቃሚ ስለሚሆኑ አንዳንድ ነጥቦች እናገራለሁ.

አካባቢን ሲያዘጋጁ ብዙ ስራዎች በትእዛዝ መስመር በኩል ይከናወናሉ. አብዛኛዎቹ ተጠቃሚዎች ዊንዶውስ እንደ ኦፕሬቲንግ ሲስተም ይጠቀማሉ። በዚህ ስርዓተ ክወና ውስጥ ያለው መደበኛ ኮንሶል ብዙ የሚፈለጉትን ይተዋል. ስለዚህ, ምቹ መሣሪያን እንጠቀማለን ሲኤምደር/. አነስተኛውን ስሪት ያውርዱ እና Cmder.exe ን ያሂዱ። በመቀጠል ከአገልጋዩ ጋር በኤስኤስኤች በኩል መገናኘት ያስፈልግዎታል:

ssh root@server-ip-or-hostname

ከአገልጋይ-ip-ወይም-አስተናጋጅ ስም ይልቅ የአገልጋይዎን የአይፒ አድራሻ ወይም የዲ ኤን ኤስ ስም ይጥቀሱ። በመቀጠል የይለፍ ቃሉን ያስገቡ እና ግንኙነቱ የተሳካ ከሆነ, ከዚህ ጋር ተመሳሳይ የሆነ መልእክት መቀበል አለብን.

Welcome to Ubuntu 18.04.3 LTS (GNU/Linux 4.15.0-74-generic x86_64)

የኤምኤል ሞዴሎችን ለማዘጋጀት ዋናው ቋንቋ Python ነው. እና በሊኑክስ ላይ ለመጠቀም በጣም ታዋቂው መድረክ ነው። አናኮንዳ.

በአገልጋያችን ላይ እንጭነው።

የአካባቢውን ጥቅል አስተዳዳሪ በማዘመን እንጀምራለን፡-

sudo apt-get update

ኩርባን ጫን (የትእዛዝ መስመር መገልገያ)

sudo apt-get install curl

የቅርብ ጊዜውን የአናኮንዳ ስርጭትን ያውርዱ፡-

cd /tmp
curl –O https://repo.anaconda.com/archive/Anaconda3-2019.10-Linux-x86_64.sh

መጫኑን እንጀምር፡-

bash Anaconda3-2019.10-Linux-x86_64.sh

በመጫን ሂደቱ ወቅት የፍቃድ ስምምነቱን እንዲያረጋግጡ ይጠየቃሉ. በተሳካ ሁኔታ ሲጫኑ ይህንን ማየት አለብዎት:

Thank you for installing Anaconda3!

ለኤምኤል ሞዴሎች ልማት ብዙ ማዕቀፎች ተፈጥረዋል ፣ እኛ በጣም ታዋቂ ከሆኑ ጋር እንሰራለን- ፒቶርች и tensor ፍሰት.

ማዕቀፉን በመጠቀም የእድገትን ፍጥነት ለመጨመር እና ለመደበኛ ስራዎች ዝግጁ የሆኑ መሳሪያዎችን ለመጠቀም ያስችላል.

በዚህ ምሳሌ ከPyTorch ጋር እንሰራለን። እንጭነው፡-

conda install pytorch torchvision cudatoolkit=10.1 -c pytorch

አሁን ለኤምኤል ስፔሻሊስቶች ታዋቂ የሆነ የእድገት መሳሪያ የሆነውን ጁፒተር ማስታወሻ ደብተር ማስጀመር አለብን። ኮድ እንዲጽፉ ይፈቅድልዎታል እና ወዲያውኑ የተፈፀመውን ውጤት ይመልከቱ። ጁፒተር ማስታወሻ ደብተር ከአናኮንዳ ጋር ተካትቷል እና አስቀድሞ በእኛ አገልጋይ ላይ ተጭኗል። ከእኛ የዴስክቶፕ ሲስተም ከእሱ ጋር መገናኘት ያስፈልግዎታል.

ይህንን ለማድረግ በመጀመሪያ ጁፒተርን ወደብ 8080 በሚገልጽ አገልጋይ ላይ እናስጀምራለን-

jupyter notebook --no-browser --port=8080 --allow-root

በመቀጠል በCmder ኮንሶላችን ውስጥ ሌላ ትርን በመክፈት (ከላይ ሜኑ - አዲስ የኮንሶል ንግግር) በፖርት 8080 ከአገልጋዩ ጋር በኤስኤስኤች እናገናኛለን፡

ssh -L 8080:localhost:8080 root@server-ip-or-hostname

የመጀመሪያውን ትዕዛዝ ስናስገባ ጁፒተርን በአሳሹ ውስጥ ለመክፈት አገናኞች ይሰጡናል፡-

To access the notebook, open this file in a browser:
        file:///root/.local/share/jupyter/runtime/nbserver-18788-open.html
    Or copy and paste one of these URLs:
        http://localhost:8080/?token=cca0bd0b30857821194b9018a5394a4ed2322236f116d311
     or http://127.0.0.1:8080/?token=cca0bd0b30857821194b9018a5394a4ed2322236f116d311

አገናኙን ለ localhost፡8080 እንጠቀም። ሙሉውን መንገድ ይቅዱ እና ወደ ፒሲዎ አካባቢያዊ አሳሽ የአድራሻ አሞሌ ይለጥፉ። ጁፒተር ማስታወሻ ደብተር ይከፈታል።

አዲስ ማስታወሻ ደብተር እንፍጠር፡ አዲስ - ማስታወሻ ደብተር - Python 3።

የጫንናቸው ሁሉንም አካላት ትክክለኛ አሠራር እንፈትሽ። ምሳሌውን የፒቶርች ኮድን ወደ ጁፒተር እናስገባና ማስፈጸሚያውን (Run button) እናስኬድ፡-

from __future__ import print_function
import torch
x = torch.rand(5, 3)
print(x)

ውጤቱ እንደዚህ ያለ ነገር መሆን አለበት-

በግራፊክ ማቀናበሪያ ክፍል (ጂፒዩ) ላይ የመጀመሪያው የነርቭ አውታረ መረብዎ። የጀማሪ መመሪያ

ተመሳሳይ ውጤት ካሎት, ሁሉንም ነገር በትክክል አዋቅረናል እና የነርቭ አውታረ መረብን ማዘጋጀት እንጀምራለን!

የነርቭ አውታር መፍጠር

ምስልን ለመለየት የነርቭ አውታር እንፈጥራለን. ይህንን መሰረት አድርገን እንውሰድ መመሪያ.

አውታረ መረቡን ለማሰልጠን በይፋ የሚገኘውን CIFAR10 የውሂብ ስብስብ እንጠቀማለን። ክፍሎች አሉት: "አይሮፕላን", "መኪና", "ወፍ", "ድመት", "አጋዘን", "ውሻ", "እንቁራሪት", "ፈረስ", "መርከብ", "የጭነት መኪና". በCIFAR10 ውስጥ ያሉ ምስሎች 3x32x32፣ ማለትም ባለ 3-ቻናል ቀለም ምስሎች 32x32 ፒክስል ናቸው።

በግራፊክ ማቀናበሪያ ክፍል (ጂፒዩ) ላይ የመጀመሪያው የነርቭ አውታረ መረብዎ። የጀማሪ መመሪያ
ለስራ, ከምስሎች ጋር ለመስራት በፒቶርች የተፈጠረውን ጥቅል እንጠቀማለን - ችቦ.

የሚከተሉትን ቅደም ተከተሎች እናደርጋለን-

  • የስልጠና እና የሙከራ የውሂብ ስብስቦችን መጫን እና መደበኛ ማድረግ
  • የነርቭ አውታረ መረብ ፍቺ
  • በስልጠና መረጃ ላይ የአውታረ መረብ ስልጠና
  • በሙከራ ውሂብ ላይ የአውታረ መረብ ሙከራ
  • ጂፒዩ በመጠቀም ስልጠና እና ሙከራን እንድገመው

ከዚህ በታች ያሉትን ሁሉንም ኮድ በጁፒተር ማስታወሻ ደብተር ውስጥ እናስፈጽማለን።

CIFAR10ን በመጫን ላይ እና መደበኛ ማድረግ

የሚከተለውን ኮድ በጁፒተር ውስጥ ይቅዱ እና ያሂዱ፡-


import torch
import torchvision
import torchvision.transforms as transforms

transform = transforms.Compose(
    [transforms.ToTensor(),
     transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))])

trainset = torchvision.datasets.CIFAR10(root='./data', train=True,
                                        download=True, transform=transform)
trainloader = torch.utils.data.DataLoader(trainset, batch_size=4,
                                          shuffle=True, num_workers=2)

testset = torchvision.datasets.CIFAR10(root='./data', train=False,
                                       download=True, transform=transform)
testloader = torch.utils.data.DataLoader(testset, batch_size=4,
                                         shuffle=False, num_workers=2)

classes = ('plane', 'car', 'bird', 'cat',
           'deer', 'dog', 'frog', 'horse', 'ship', 'truck')

መልሱ መሆን ያለበት፡-

Downloading https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz to ./data/cifar-10-python.tar.gz
Extracting ./data/cifar-10-python.tar.gz to ./data
Files already downloaded and verified

ለሙከራ በርካታ የሥልጠና ምስሎችን እናሳይ፡-


import matplotlib.pyplot as plt
import numpy as np

# functions to show an image

def imshow(img):
    img = img / 2 + 0.5     # unnormalize
    npimg = img.numpy()
    plt.imshow(np.transpose(npimg, (1, 2, 0)))
    plt.show()

# get some random training images
dataiter = iter(trainloader)
images, labels = dataiter.next()

# show images
imshow(torchvision.utils.make_grid(images))
# print labels
print(' '.join('%5s' % classes[labels[j]] for j in range(4)))

በግራፊክ ማቀናበሪያ ክፍል (ጂፒዩ) ላይ የመጀመሪያው የነርቭ አውታረ መረብዎ። የጀማሪ መመሪያ

የነርቭ አውታረ መረብ ፍቺ

በመጀመሪያ ለምስል ማወቂያ የነርቭ አውታረ መረብ እንዴት እንደሚሰራ እናስብ። ይህ ቀላል ነጥብ-ወደ-ነጥብ አውታረ መረብ ነው። የግቤት ውሂብን ይወስዳል, በበርካታ ንብርብሮች ውስጥ አንድ በአንድ ያልፋል, እና በመጨረሻም የውጤት ውሂብን ይፈጥራል.

በግራፊክ ማቀናበሪያ ክፍል (ጂፒዩ) ላይ የመጀመሪያው የነርቭ አውታረ መረብዎ። የጀማሪ መመሪያ

በአካባቢያችን ተመሳሳይ ኔትወርክ እንፍጠር፡-


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(3, 6, 5)
        self.pool = nn.MaxPool2d(2, 2)
        self.conv2 = nn.Conv2d(6, 16, 5)
        self.fc1 = nn.Linear(16 * 5 * 5, 120)
        self.fc2 = nn.Linear(120, 84)
        self.fc3 = nn.Linear(84, 10)

    def forward(self, x):
        x = self.pool(F.relu(self.conv1(x)))
        x = self.pool(F.relu(self.conv2(x)))
        x = x.view(-1, 16 * 5 * 5)
        x = F.relu(self.fc1(x))
        x = F.relu(self.fc2(x))
        x = self.fc3(x)
        return x

net = Net()

እንዲሁም የኪሳራ ተግባር እና አመቻች እንገልፃለን።


import torch.optim as optim

criterion = nn.CrossEntropyLoss()
optimizer = optim.SGD(net.parameters(), lr=0.001, momentum=0.9)

በስልጠና መረጃ ላይ የአውታረ መረብ ስልጠና

የነርቭ መረባችንን ማሰልጠን እንጀምር። እባክዎን ይህንን ኮድ ካስኬዱ በኋላ ስራው እስኪጠናቀቅ ድረስ የተወሰነ ጊዜ መጠበቅ ያስፈልግዎታል. 5 ደቂቃ ወሰደኝ። ኔትወርክን ለማሰልጠን ጊዜ ይወስዳል.

 for epoch in range(2):  # loop over the dataset multiple times

    running_loss = 0.0
    for i, data in enumerate(trainloader, 0):
        # get the inputs; data is a list of [inputs, labels]
        inputs, labels = data

        # zero the parameter gradients
        optimizer.zero_grad()

        # forward + backward + optimize
        outputs = net(inputs)
        loss = criterion(outputs, labels)
        loss.backward()
        optimizer.step()

        # print statistics
        running_loss += loss.item()
        if i % 2000 == 1999:    # print every 2000 mini-batches
            print('[%d, %5d] loss: %.3f' %
                  (epoch + 1, i + 1, running_loss / 2000))
            running_loss = 0.0

print('Finished Training')

የሚከተለውን ውጤት እናገኛለን:

በግራፊክ ማቀናበሪያ ክፍል (ጂፒዩ) ላይ የመጀመሪያው የነርቭ አውታረ መረብዎ። የጀማሪ መመሪያ

የሰለጠነ ሞዴላችንን እናስቀምጣለን፡-

PATH = './cifar_net.pth'
torch.save(net.state_dict(), PATH)

በሙከራ ውሂብ ላይ የአውታረ መረብ ሙከራ

የስልጠና መረጃን በመጠቀም ኔትወርኩን አሰልጥነናል። ነገር ግን አውታረ መረቡ ምንም የተማረ መሆኑን ማረጋገጥ አለብን።

ይህንንም የነርቭ ኔትወርክ የሚያወጣውን የክፍል መለያ በመተንበይ እና እውነት መሆኑን በመሞከር እንፈትሻለን። ትንበያው ትክክል ከሆነ, ናሙናውን ወደ ትክክለኛ ትንበያዎች ዝርዝር ውስጥ እንጨምራለን.
ከሙከራ ስብስብ ውስጥ ያለውን ምስል እናሳይ፡-

dataiter = iter(testloader)
images, labels = dataiter.next()

# print images
imshow(torchvision.utils.make_grid(images))
print('GroundTruth: ', ' '.join('%5s' % classes[labels[j]] for j in range(4)))

በግራፊክ ማቀናበሪያ ክፍል (ጂፒዩ) ላይ የመጀመሪያው የነርቭ አውታረ መረብዎ። የጀማሪ መመሪያ

አሁን በእነዚህ ሥዕሎች ውስጥ ምን እንዳለ እንዲነግረን የነርቭ ኔትወርክን እንጠይቅ፡-


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

outputs = net(images)

_, predicted = torch.max(outputs, 1)

print('Predicted: ', ' '.join('%5s' % classes[predicted[j]]
                              for j in range(4)))

በግራፊክ ማቀናበሪያ ክፍል (ጂፒዩ) ላይ የመጀመሪያው የነርቭ አውታረ መረብዎ። የጀማሪ መመሪያ

ውጤቶቹ በጣም ጥሩ ይመስላሉ፡ አውታረ መረቡ ከአራቱ ስዕሎች ውስጥ ሦስቱን በትክክል ለይቷል።

በመላው የውሂብ ስብስብ ውስጥ አውታረ መረቡ እንዴት እንደሚሰራ እንይ።


correct = 0
total = 0
with torch.no_grad():
    for data in testloader:
        images, labels = data
        outputs = net(images)
        _, predicted = torch.max(outputs.data, 1)
        total += labels.size(0)
        correct += (predicted == labels).sum().item()

print('Accuracy of the network on the 10000 test images: %d %%' % (
    100 * correct / total))

በግራፊክ ማቀናበሪያ ክፍል (ጂፒዩ) ላይ የመጀመሪያው የነርቭ አውታረ መረብዎ። የጀማሪ መመሪያ

አውታረ መረቡ አንድ ነገር የሚያውቅ እና እየሰራ ያለ ይመስላል። ክፍሎቹን በዘፈቀደ ከወሰነ ትክክለኝነት 10% ይሆናል.

አሁን የትኞቹን ክፍሎች አውታረ መረቡ እንደሚለይ እንይ፡-

class_correct = list(0. for i in range(10))
class_total = list(0. for i in range(10))
with torch.no_grad():
    for data in testloader:
        images, labels = data
        outputs = net(images)
        _, predicted = torch.max(outputs, 1)
        c = (predicted == labels).squeeze()
        for i in range(4):
            label = labels[i]
            class_correct[label] += c[i].item()
            class_total[label] += 1


for i in range(10):
    print('Accuracy of %5s : %2d %%' % (
        classes[i], 100 * class_correct[i] / class_total[i]))

በግራፊክ ማቀናበሪያ ክፍል (ጂፒዩ) ላይ የመጀመሪያው የነርቭ አውታረ መረብዎ። የጀማሪ መመሪያ

መኪናዎችን እና መርከቦችን ለመለየት አውታረ መረቡ የተሻለው ይመስላል-71% ትክክለኛነት።

ስለዚህ አውታረ መረቡ እየሰራ ነው። አሁን ስራውን ወደ ግራፊክስ ፕሮሰሰር (ጂፒዩ) ለማስተላለፍ እንሞክር እና ምን እንደሚለወጥ ይመልከቱ.

በጂፒዩ ላይ የነርቭ ኔትወርክን ማሰልጠን

በመጀመሪያ፣ CUDA ምን እንደሆነ በአጭሩ እገልጻለሁ። CUDA (የተዋሃደ የመሣሪያ አርክቴክቸር) በNVDIA የተሰራ ትይዩ የኮምፒዩቲንግ መድረክ ነው በግራፊክስ ማቀነባበሪያ ክፍሎች (ጂፒዩዎች)። በCUDA፣ ገንቢዎች የጂፒዩዎችን ኃይል በመጠቀም የኮምፒዩተር መተግበሪያዎችን በአስደናቂ ሁኔታ ማፋጠን ይችላሉ። ይህ መድረክ በገዛነው አገልጋይ ላይ አስቀድሞ ተጭኗል።

መጀመሪያ የኛን ጂፒዩ እንደ መጀመሪያው የሚታይ የኩዳ መሳሪያ እንገልፀው።

device = torch . device ( "cuda:0" if torch . cuda . is_available () else "cpu" )
# Assuming that we are on a CUDA machine, this should print a CUDA device:
print ( device )

በግራፊክ ማቀናበሪያ ክፍል (ጂፒዩ) ላይ የመጀመሪያው የነርቭ አውታረ መረብዎ። የጀማሪ መመሪያ

አውታረ መረቡን ወደ ጂፒዩ በመላክ ላይ፡-

net.to(device)

እንዲሁም ግብዓቶችን እና ኢላማዎችን በእያንዳንዱ እርምጃ ወደ ጂፒዩ መላክ አለብን።

inputs, labels = data[0].to(device), data[1].to(device)

ኔትወርክን በጂፒዩ ላይ እንደገና እናሰልጥነው፡-

import torch.optim as optim

criterion = nn.CrossEntropyLoss()
optimizer = optim.SGD(net.parameters(), lr=0.001, momentum=0.9)
for epoch in range(2):  # loop over the dataset multiple times

    running_loss = 0.0
    for i, data in enumerate(trainloader, 0):
        # get the inputs; data is a list of [inputs, labels]
    inputs, labels = data[0].to(device), data[1].to(device)

        # zero the parameter gradients
        optimizer.zero_grad()

        # forward + backward + optimize
        outputs = net(inputs)
        loss = criterion(outputs, labels)
        loss.backward()
        optimizer.step()

        # print statistics
        running_loss += loss.item()
        if i % 2000 == 1999:    # print every 2000 mini-batches
            print('[%d, %5d] loss: %.3f' %
                  (epoch + 1, i + 1, running_loss / 2000))
            running_loss = 0.0

print('Finished Training')

በዚህ ጊዜ የኔትወርክ ስልጠና ለ 3 ደቂቃዎች ያህል ቆየ. በተለመደው ፕሮሰሰር ላይ ያለው ተመሳሳይ ደረጃ ለ 5 ደቂቃዎች እንደቆየ እናስታውስ. ልዩነቱ ጉልህ አይደለም, ይህ የሚሆነው የእኛ አውታረመረብ በጣም ትልቅ ስላልሆነ ነው. ለስልጠና ትላልቅ አደራደሮችን ሲጠቀሙ በጂፒዩ ፍጥነት እና በባህላዊ ፕሮሰሰር መካከል ያለው ልዩነት ይጨምራል።

ያ ብቻ ይመስላል። ማድረግ የቻልነው፡-

  • ጂፒዩ ምን እንደሆነ ተመልክተናል እና የተጫነበትን አገልጋይ መርጠናል;
  • የነርቭ ኔትወርክ ለመፍጠር የሶፍትዌር አካባቢ አዘጋጅተናል;
  • ለምስል ማወቂያ የነርቭ ኔትወርክ ፈጠርን እና አሠልጥነናል;
  • ጂፒዩ በመጠቀም የኔትወርክ ስልጠናውን ደግመን የፍጥነት መጨመር አግኝተናል።

በአስተያየቶቹ ውስጥ ጥያቄዎችን ለመመለስ ደስተኛ እሆናለሁ.

ምንጭ: hab.com

አስተያየት ያክሉ