ITÊýÂë ¹ºÎï ÍøÖ· Í·Ìõ Èí¼þ ÈÕÀú ÔĶÁ ͼÊé¹Ý
TxTС˵ÔĶÁÆ÷
¡ýÓïÒôÔĶÁ,С˵ÏÂÔØ,¹ÅµäÎÄѧ¡ý
ͼƬÅúÁ¿ÏÂÔØÆ÷
¡ýÅúÁ¿ÏÂÔØͼƬ,ÃÀŮͼ¿â¡ý
ͼƬ×Ô¶¯²¥·ÅÆ÷
¡ýͼƬ×Ô¶¯²¥·ÅÆ÷¡ý
Ò»¼üÇå³ýÀ¬»ø
¡ýÇáÇáÒ»µã,Çå³ýϵͳÀ¬»ø¡ý
¿ª·¢: C++֪ʶ¿â Java֪ʶ¿â JavaScript Python PHP֪ʶ¿â È˹¤ÖÇÄÜ Çø¿éÁ´ ´óÊý¾Ý Òƶ¯¿ª·¢ ǶÈëʽ ¿ª·¢¹¤¾ß Êý¾Ý½á¹¹ÓëËã·¨ ¿ª·¢²âÊÔ ÓÎÏ·¿ª·¢ ÍøÂçЭÒé ϵͳÔËά
½Ì³Ì: HTML½Ì³Ì CSS½Ì³Ì JavaScript½Ì³Ì GoÓïÑÔ½Ì³Ì JQuery½Ì³Ì VUE½Ì³Ì VUE3½Ì³Ì Bootstrap½Ì³Ì SQLÊý¾Ý¿â½Ì³Ì CÓïÑÔ½Ì³Ì C++½Ì³Ì Java½Ì³Ì Python½Ì³Ì Python3½Ì³Ì C#½Ì³Ì
ÊýÂë: µçÄÔ ±Ê¼Ç±¾ ÏÔ¿¨ ÏÔʾÆ÷ ¹Ì̬ӲÅÌ Ó²ÅÌ ¶ú»ú ÊÖ»ú iphone vivo oppo СÃ× »ªÎª µ¥·´ ×°»ú ͼÀ­¶¡
 
   -> È˹¤ÖÇÄÜ -> ¶¯ÊÖѧÉî¶Èѧϰ¡ª¡ªÏßÐԻعéµÄ´ÓÁ㿪ʼʵÏÖ -> ÕýÎÄÔĶÁ

[È˹¤ÖÇÄÜ]¶¯ÊÖѧÉî¶Èѧϰ¡ª¡ªÏßÐԻعéµÄ´ÓÁ㿪ʼʵÏÖ

ÎÒÃǽ«´ÓÁ㿪ʼʵÏÖÕû¸ö·½·¨,°üÀ¨Á÷Ë®Ïß¡¢Ä£ÐÍ¡¢Ëðʧº¯ÊýºÍСÅúÁ¿Ëæ»úÌݶÈϽµÓÅ»¯Æ÷¡£
import os
import matplotlib.pyplot as plt
#ÆäÖÐmatplotlib°ü¿ÉÓÃÓÚ×÷ͼ,ÇÒÉèÖóÉǶÈëʽ
import torch
from IPython import display
from matplotlib import pyplot as plt
import numpy as np
import random
ÎÒÃǹ¹Ôì?¸ö¼òµ¥µÄ??ѵÁ·Êý¾Ý¼¯,¸ø¶¨Ëæ»ú?³ÉµÄÅúÁ¿Ñù±¾ÌØÕ÷ ,ÎÒÃÇʹ?ÏßÐԻعéÄ£ÐÍÕæʵȨÖØ ºÍÆ«²îb=4.2,ÒÔ¼°?¸öËæ»úÔëÉù Ïî€ À´?³É±êÇ©:

?

?1¡¢Éú³ÉÊý¾Ý¼¯

"""
¸ù¾Ý´øÓÐÔëÉùµÄÏßÐÔÄ£Ð͹¹ÔìÒ»¸öÈËÔìÊý¾Ý¼¯
"""
num_inputs=2 #ÊäÈë¸öÊý(ÌØÕ÷Êý)Ϊ2
num_examples=1000 #ѵÁ·Êý¾Ý¼¯Ñù±¾ÊýΪ1000
true_w=[2,-3.4] #ÏßÐԻعéÄ£Ð͵ÄÕæʵȨÖØ
true_b=4.2 #ÏßÐԻعéÄ£Ð͵ÄÕæʵƫ²î
features=torch.from_numpy(np.random.normal(0,1,(num_examples,num_inputs)))
# ¾ùֵΪ0,·½²îΪ1µÄËæ»úÊý ,ÓÐnum_examples¸öÑù±¾,ÁÐÊýΪnum_inputs

labels=true_w[0]*features[:,0]+true_w[1]*features[:,1]+true_b
# lables¾ÍµÈÓÚwµÄÿÁгËÒÔfeaturesµÄÿÁÐÈ»ºóÏà¼Ó,×îºó¼ÓÉÏÆ«²îtrue_b;

labels+=torch.from_numpy(np.random.normal(0,0.01,size=labels.size()))
# ¼ÓÈëÁËÒ»¸öÔëÒô,¾ùֵΪ0,·½²îΪ0.01,ÐÎ×´ºÍlablesµÄ³¤¶ÈÊÇÒ»ÑùµÄ
"""
features µÄÿ??ÊÇ?¸ö?¶ÈΪ2µÄÏòÁ¿,? labels µÄÿ??ÊÇ?¸ö?¶ÈΪ1µÄÏòÁ¿(±ê
Á¿)
"""
print(features[0],labels[0])
#×îºóÊä³öÁÐÏòÁ¿(ÌØÕ÷ºÍ±ê×¢)

?

ͨ¹ý?³ÉµÚ?¸öÌØÕ÷ features[:, 1] ºÍ±êÇ© labels µÄÉ¢µãͼ,À´¹Û²ìÁ½Õß¼äµÄÏßÐÔ¹Ø
ϵ
def use_svg_display():
    # ÓÃʸÁ¿Í¼±íʾ
    display.set_matplotlib_formats('svg')
def set_figsize(figsize=(3.5,2.5)):
    use_svg_display()
    #ÉèÖÃͼµÄ³ß´ç
    plt.rcParams['figure.figsize']=figsize
set_figsize()
plt.scatter(features[:,1].numpy(),labels.numpy(),1);
plt.show()

?Ò²¿ÉÒÔ°ÑÉÏÊöµÄ×÷ͼº¯Êý±£´æÔÚd21zh_pytorch°üÖÐ,²½ÖèÈçÏÂ:

µÚÒ»²½:н¨Ò»¸öd21zh_pytorch°ü;

µÚ¶þ²½:ÔÚ°üÖÐн¨Ò»¸ömethods.py Îļþ;

µÚÈý²½:°Ñplt ×÷ ͼ º¯ Êý ÒÔ ¼° use_svg_display º¯ Êý ºÍ set_figsize º¯ Êý ¶¨ Òå ÔÚd2lzh_pytorch?ÖеÄmethods.pyÎļþÖÐ,Èçͼ:

?È»ºó¿ÉÒÔÖ±½Óµ÷Óñ£´æºÃµÄº¯Êý,À´ÏÔʾɢµãͼ:

"""
Èç¹ûÔÚd21zh_pytorchÀïÃæÌí¼ÓÉÏÃæÁ½¸öº¯Êýºó,¾Í¿ÉÒÔʹÓÃÏÂÃæµÄ·½·¨µ÷Óü´¿É
"""
import sys
sys.path.append("..")
from d21zh_pytorch import *
set_figsize()
plt.scatter(features[:,1].numpy(),labels.numpy(),1);
plt.show()

2¡¢ ¶ÁÈ¡Êý¾Ý

ÔÚѵÁ·Êý¾Ýʱ,ÎÒÃÇÐèÒª±éÀúÊý¾Ý¼¯²¢²»¶Ï¶ÁȡСÅúÁ¿Êý¾ÝÑù±¾¡£ÔÚÕâÀïÎÒÃǶ¨ÒåÒ»¸öº¯Êý:Ëûÿ´Î·µ»Øbatch_size(ÅúÁ¿´óС)¸öËæ»úÑù±¾µÄÌØÕ÷ºÍ±êÇ©¡£

#¶¨ÒåÒ»¸ödata_iterº¯Êý,¸Ãº¯Êý½ÓÊÜÅúÁ¿´óС¡¢ÌØÕ÷¾ØÕóºÍ±êÇ©ÏòÁ¿×÷ΪÊäÈë,Éú³É´óСΪbatch_sizeµÄСÅúÁ¿
def data_iter(batch_size,features,labels):
    num_examples=len(features)
    indices=list (range(num_examples))
    random.shuffle(indices) #Ñù±¾µÄ¶Áȡ˳ÐòÊÇËæ»úµÄ
    for i in range(0,num_examples,batch_size):
        #´Ó0¿ªÊ¼µ½num_examples½áÊø,ÿ´ÎÌøbatch_size¸ö´óС¡£
        j=torch.LongTensor(indices[i:min(i+batch_size,num_examples)])
        #×îºóÒ»´Î¿ÉÄܲ»×ãÒ»¸öbatch,ËùÒÔ×îºóÒ»¸öÅúÁ¿È¡Ò»¸ö×îСֵmin
        yield  features.index_select(0,j),labels.index_select(0,j)
#¶ÁÈ¡µÚÒ»¸öСÅúÁ¿Êý¾ÝÑù±¾²¢´òÓ¡
batch_size=10
for X,y in data_iter(batch_size,features,labels):
    print(X,'\n',y) #Éú³ÉXÊÇ10³Ë2µÄÏòÁ¿,yÊÇ10³Ë1µÄÏòÁ¿
    #¼Ó¸ö¡®\n¡¯ ¿ÉÒÔÈÃy»»Ðбíʾ
    break

3¡¢?¶¨Òå³õʼ»¯Ä£ÐͲÎÊý

"""
ÎÒÃǽ«È¨Öسõʼ»¯³É¾ùֵΪ0,±ê×¼²îΪ0.01µÄÕý̬Ëæ»úÊý,Æ«²î³õʼ»¯³É0
"""
tensor = tensor.to(torch.float32)
w=torch.tensor(np.random.normal(0,0.01,(num_inputs,1)),dtype=torch.double)

b=torch.zeros(1,dtype=torch.double)
#Ö®ºóµÄÄ£ÐÍѵÁ·ÖÐ,ÐèÒª¶ÔÕâЩ²ÎÊýÇóÌݶÈÀ´µü´ú²ÎÊýµÄÖµ,Òò´ËÎÒÃÇÒªÈÃËüÃǵÄrequires_grad=True
w.requires_grad_(requires_grad=True)
b.requires_grad_(requires_grad=True)
×¢:w=torch.tensor(np.random.normal(0,0.01,(num_inputs,1)),dtype=torch.double)

b=torch.zeros(1,dtype=torch.double)

ÕâÀïÊý¾ÝÀàÐÍÒªÓÃdouble,¶ø²»ÄÜÓÃfloat32,·ñÔò»á±¨´í¡£


4¡¢¶¨ÒåÄ£ÐÍ
#ÏÂÃæÊÇÏßÐԻعéµÄʸÁ¿¼ÆËã±í´ïʽµÄʵÏÖ,ÎÒÃÇʹÓÃmmº¯Êý×ö¾ØÕó³Ë·¨
def linreg(X,w,b):#ÏßÐԻعéÄ£ÐÍ
    return torch.mm(X,w)+b
    #·µ»ØÔ¤²â(ÊäÈëX³ËÒÔw,¾ØÕó³ËÒÔÏòÁ¿,¼ÓÉÏÆ«²î)
5¡¢¶¨ÒåËðʧº¯Êý
"""
ÃèÊöµÄƽ·½ËðʧÀ´¶¨ÒåÏßÐԻعéµÄËðʧº¯Êý,ÔÚÏÖʵÖÐ,ÎÒÃÇÐèÒª°ÑÕæʵֵy±ä³ÉÔ¤²âÖµy_hatµÄÐÎ×´¡£ÒÔϺ¯Êý·µ»ØµÄ½á¹ûÒ²½«ºÍy_hatµÄÐÎ×´Ïàͬ
"""
def squared_loss(y_hat,y):
    #squared_loss¾ù·½Ëðʧ
    return (y_hat - y.view(y_hat.size()))**2/2#°´ÔªËØ×ö¼õ·¨,°´ÔªËØ×öƽ·½,×îºó³ýÒÔ2
# ×¢ÒâÕâ?·µ»ØµÄÊÇÏòÁ¿, ÁíÍâ, pytorch?µÄMSELoss²¢Ã»ÓгýÒÔ2
6¡¢¶¨ÒåÓÅ»¯Ëã·¨
# ÒÔÏ嵀 sgd º¯ÊýʵÏÖÁËÉÏ?½ÚÖнéÉܵÄ?ÅúÁ¿Ëæ»úÌݶÈϽµËã·¨¡£Ëüͨ¹ý²»¶Ïµü´úÄ£ÐͲÎÊýÀ´ÓÅ»¯Ëðʧº¯Êý¡£Õâ??¶¯ÇóÌݶÈÄ£¿é¼ÆËãµÃÀ´µÄÌݶÈÊÇ?¸öÅúÁ¿Ñù±¾µÄÌݶȺ͡£ÎÒÃǽ«Ëü³ýÒÔÅúÁ¿??À´µÃµ½Æ½¾ùÖµ¡£
def sgd(params, lr, batch_size): #¸ø¶¨ËùÓеIJÎÊýparam(°üº¬ÁËwºÍb),ѧϰÂÊ,ÅúÁ¿´óС
    #СÅúÁ¿Ëæ»úÌݶÈϽµ
   for param in params: #¶Ô²ÎÊýparamsÖеÄÿһ¸ö²ÎÊýparam(w»òÕßb)
       param.data -= lr * param.grad / batch_size # ÌݶȴæÔÚ.gradÖÐ
     ## ×¢ÒâÕâ?¸ü¸Äparamʱ?µÄparam.data
7¡¢ÑµÁ·Ä£ÐÍ
lr = 0.03 #ѧϰÂÊÉèÖÃΪ0.03
num_epochs = 3 #µü´úÖÜÆÚ¸öÊýΪ3,Õû¸öÊý¾ÝɨÈý±é
net = linreg #ÏßÐԻعéÄ£ÐÍ
loss = squared_loss #¾ù·½Ëðʧ
#ѵÁ·µÄʵÏÖ¾ÍÊÇÁ½²ãfor epoch
for epoch in range(num_epochs): # ѵÁ·Ä£ÐÍ?¹²ÐèÒªnum_epochs¸öµü´úÖÜÆÚ

    # ÔÚÿ?¸öµü´úÖÜÆÚÖÐ,»áʹ?ѵÁ·Êý¾Ý¼¯ÖÐËùÓÐÑù±¾?´Î(¼ÙÉèÑù±¾ÊýÄܹ»±»ÅúÁ¿??Õû³ý)
    # XºÍy·Ö±ðÊÇ?ÅúÁ¿Ñù±¾µÄÌØÕ÷ºÍ±êÇ©
    for X, y in data_iter(batch_size, features, labels):
        l = loss(net(X, w, b), y).sum()
        # lÊÇÓйØ?ÅúÁ¿XºÍyµÄËðʧ
        l.backward()  # ?ÅúÁ¿µÄËðʧ¶ÔÄ£ÐͲÎÊýÇóÌݶÈ
        sgd([w, b], lr, batch_size)  # ʹ??ÅúÁ¿Ëæ»úÌݶÈϽµµü´úÄ£ÐͲÎÊý
        # ²»ÒªÍüÁËÌݶÈÇåÁã
        w.grad.data.zero_()
        b.grad.data.zero_()
        train_l = loss(net(features, w, b), labels)
        print('epoch %d, loss %f' % (epoch + 1, train_l.mean().item()))

Êä³öºÜ¶àÌõÊý¾Ý´Óepoch1µ½epoch3¡£

#±È½ÏÕæʵ²ÎÊýºÍͨ¹ýѵÁ·Ñ§µ½µÄ²ÎÊýÀ´ÆÀ¹ÀѵÁ·µÄ³É¹¦³Ì¶È
print(true_w, '\n', w)
print(true_b, '\n', b)

?

?

  È˹¤ÖÇÄÜ ×îÐÂÎÄÕÂ
2022Îâ¶÷´ï»úÆ÷ѧϰ¿Î³Ì¡ª¡ªµÚ¶þ¿Î£¨Éñ¾­Íø
µÚÊ®ÎåÕ ¹æÔòѧϰ
FixMatch: Simplifying Semi-Supervised Le
Êý¾ÝÍÚ¾òJava¡ª¡ªKmeansËã·¨µÄʵÏÖ
´óÄÔƤ²ãµÄ·Ö¸î·½·¨
¡¾·­Òë¡¿GPT-3ÊÇÈçºÎ¹¤×÷µÄ
ÂÛÎıʼÇ:TEACHTEXT: CrossModal Generaliz
python´ÓÁãѧ£¨Áù£©
Ïê½âPython 3.x µ¼Èë(import)
¡¾´ð¶ÁÕßÎÊ27¡¿backtrader²»Ö§³Ö×îа汾µÄ
ÉÏһƪÎÄÕ      ÏÂһƪÎÄÕ      ²é¿´ËùÓÐÎÄÕÂ
¼Ó:2021-11-26 08:51:52  ¸ü:2021-11-26 08:52:01 
 
¿ª·¢: C++֪ʶ¿â Java֪ʶ¿â JavaScript Python PHP֪ʶ¿â È˹¤ÖÇÄÜ Çø¿éÁ´ ´óÊý¾Ý Òƶ¯¿ª·¢ ǶÈëʽ ¿ª·¢¹¤¾ß Êý¾Ý½á¹¹ÓëËã·¨ ¿ª·¢²âÊÔ ÓÎÏ·¿ª·¢ ÍøÂçЭÒé ϵͳÔËά
½Ì³Ì: HTML½Ì³Ì CSS½Ì³Ì JavaScript½Ì³Ì GoÓïÑÔ½Ì³Ì JQuery½Ì³Ì VUE½Ì³Ì VUE3½Ì³Ì Bootstrap½Ì³Ì SQLÊý¾Ý¿â½Ì³Ì CÓïÑÔ½Ì³Ì C++½Ì³Ì Java½Ì³Ì Python½Ì³Ì Python3½Ì³Ì C#½Ì³Ì
ÊýÂë: µçÄÔ ±Ê¼Ç±¾ ÏÔ¿¨ ÏÔʾÆ÷ ¹Ì̬ӲÅÌ Ó²ÅÌ ¶ú»ú ÊÖ»ú iphone vivo oppo СÃ× »ªÎª µ¥·´ ×°»ú ͼÀ­¶¡

360ͼÊé¹Ý ¹ºÎï Èý·á¿Æ¼¼ ÔĶÁÍø ÈÕÀú ÍòÄêÀú 2024Äê11ÈÕÀú -2024/11/27 4:32:05-

ͼƬ×Ô¶¯²¥·ÅÆ÷
¡ýͼƬ×Ô¶¯²¥·ÅÆ÷¡ý
TxTС˵ÔĶÁÆ÷
¡ýÓïÒôÔĶÁ,С˵ÏÂÔØ,¹ÅµäÎÄѧ¡ý
Ò»¼üÇå³ýÀ¬»ø
¡ýÇáÇáÒ»µã,Çå³ýϵͳÀ¬»ø¡ý
ͼƬÅúÁ¿ÏÂÔØÆ÷
¡ýÅúÁ¿ÏÂÔØͼƬ,ÃÀŮͼ¿â¡ý
  ÍøÕ¾ÁªÏµ: qq:121756557 email:121756557@qq.com  ITÊýÂë