白いフレームの学習をpytorch(2) - 深ハンズオン科学学習(開始)

この中で、あなたに本をお勧めします-本を取る-科学ハンズオン、深い学習の枠組みpytorch深さバージョンを学習オリジナルブックMXNet、再包装、スタイルは非常に近いpytorchの使用にあるグルーオンを通じて、このフレームワークが、増大により火災pytorchには、個人と比較的永続的な、pytorchを学びたい、よく、大きな神があり、「ハンズオンディープラーニング学習」pytorchコード再生と一冊の本を、そのGitHubのサイトで:https://github.com/ShusenTang/ダイビングに-DL-PyTorch    オリジナルブックGitHubのサイトで:https://github.com/d2l-ai/d2l-zh    、長い実装コードなどとして、フレームワークを学び、フレームワークがどうなると言うことです客観そのうち、実際には、誰もが興味を持って見ます始めるための追加十分。カザフスタンの新人洞察は、ここでいくつかの重要な個人的な感情です

  指標(X [:1])及びビューを出てきたが()の形状を変更し、元のデータと変更され、共有メモリ、の結果は、さらなる修飾が続きます。同じアドレスを指して、リスト内のデータ構造と同様に

  それは、元のデータを変更したくない場合は(クローンのコピーを返すことができます)修正する:. X.clone()ビュー(5,3)

  項目():テンソルスカラーPythonの数に変換しました

勾配

  スカラアウト:out.backward out.backwardに()#相当(torch.tensor(1))

  (後方を呼び出すときに出入り渡す必要):アウトテンソル重みベクトルの形状とスカラーの加重和

しかしautogradのテンソルの値(逆伝搬に影響を与えずに)記録されたくないを変更したい、tensor.dataによって操作することができます

X = torch.tensor(1.0、requires_grad =真)
印刷(x.data)#テンソル(1)
印刷(x.data.requires_grad)#偽
Y = 2 * X
x.data * = 100
y.backward() 
印刷(x)が#テンソル(100、requires_grad =真)
印刷(x.grad)#テンソル(2)は、図の計算に記録されていないx.dataによって計算され、テンソル(200)ではありません。

線形回帰を達成するためにゼロから - 線形回帰は、「ハンズオンディープラーニング学習」第III章深い学習ベースを参照達成します

  これは本当に良い本ですが、私は個人的に感じます

  %matplotlibのインライン:インポートパッケージの開始前に参加し、いつでも呼び出すことはありません使用することができますpyplot.show matplotlibの(後ろに)描画するとき

  

  上記の図1は、SVGの画像表示パッケージによって提供されるリング・ファイル・フォーマットである(画像ファイル形式の最も高温であると考えられます)

  円2 rcParams()はパターンのさまざまなプロパティを設定することができる機能、リング2と同様に、画像のサイズが設けられています

plt.rcParams [ 'image.interpolation'] = '最寄り' # セット補間
plt.rcParams [ 'image.cmap'] = 'グレー'位カラーセット
plt.rcParamsを[ 'figure.dpi'] = 300 # インチ当たり点(画像解像度)
plt.rcParams [ 'savefig.dpi'] =#300ピクセル画像
plt.rcParams [ 'font.sans-セリフ'] = 'SimHei' #のセットフォント
plt.rcParams [ 'font.size'] #フォントサイズ= 10.0設定
plt.rcParams [ 'hist.bins'] = 10 #はヒストグラムボックスの数設定
plt.rcParams [」lines.linewidth '] = 1.5 #の幅セット
plt.rcParams [' text.colorを「] =」赤「#セット文字色
#百度を見てもよい他のパラメータであります
 

   図3は、スキャッタグラム描かれた円であり、最初の2つのパラメータは、X、Y、点の水平および垂直座標であり、第三のポイントサイズです。他のパラメータは、Baiduのことができます

  記録し、このデータのコードが読み込まれ、私はあまりにも料理だったので、最終的に捜査を理解して再チェックする必要はありません

DEF data_iter(BATCH_SIZE、特徴、ラベル):ここBATCH_SIZE#:10の特徴:(1000,2)ラベルのマトリクスを線形回帰式により計算して得られた予測値は、ラベルは= X * W + B
    num_examples = LEN(機能)#特徴:(1000,2)lenは(機能):1000
    インデックス=リスト(範囲(num_examples))#[0,1,2 ...、999]
    random.shuffle(インデックス)#は、以下の例を参照して、要素のリストを破壊します
    iに対して範囲(0、num_examples、BATCH_SIZE)における#0-1000、ステップ= 10 [0,10,20、...、999]
        J = torch.LongTensor(インデックス[I:分(I + BATCH_SIZE、num_examples)])#1テイクindice値、及びテンソルに戻ります。最後の時間が不足することができるように、関数minを有するバッチ
        降伏features.index_select(0、j)は、labels.index_select(0、j)は#       

よく理解//blog.csdn.net/mieleizhi0522/article/details/82142856、ブロガーに感謝:理解会場、HTTPSをもたらします

random.shuffle() は、配列の動揺になります

    リー=リスト(範囲(5))#[0,1,2,3,4]
    アウト失うことはないというよりも、印刷リストにrandom.shuffle(LI)#李の行為、(random.shuffle(LI))、
    プリント(IF)#[3,1,0,4,2]

 トーチtorch.index_select(X、1、指数)#X即ちれるテンソル(テンソルX)から選択データであるインデックスをスクリーニングするインデックス番号は、行0を表す列を表します

  x.index_select(N、指数)#Nキーウィ開始から表し、指数は、スクリーニング時のインデックス番号であります

 ブログを参照することができ、ブロガーに感謝 https://www.jb51.net/article/174524.htm

 データ機能とラベル

データとしてインポートtorch.utils.data

BATCH_SIZE = 10
データセット= Data.TensorDataset(機能、ラベル)#学習データと特徴タグ(Y値)
data_iter = Data.DataLoader(データセットは、BATCH_SIZEは、シャッフル= TRUE)#は、 バッチデータ、バッチサイズBATCH_SIZE読み込む
プレイするために#:Y-data_iterでX-ために、
    印刷(X、Y)
    BREAK

 建設モデル:

  方法1:使用すると、nn.Moduleを定義し

トーチインポートNNから
クラスLinearNet(nn.Module):
    デフ__init __(自己、n_feature):
        スーパー(LinearNet、自己).__のinit __()
        self.linear = nn.Linear(n_feature、1)
    
    #define前に広がって
    デフ前方(自己、X):
        Y = self.linear(X)
        リターンY
    

ネット= LinearNet(num_inputs)
print(net)  #显示网络结构

   方法2:使用nn.Sequential

# nn.Sequential搭建网络
# 写法1
net = nn.Sequential(
        nn.Linear(num_inputs, 1)
        # 还可加入其他层
)

# 写法2
net = nn.Sequential()
net.add_module('linear', nn.Linear(num_inputs, 1))
 # net.add_module.....
# 写法3
from collections import OrderedDict
net = nn.Sequential(OrderedDict([
    ('linear', nn.Linear(num_inputs, 1))
    # ......
]))

print(net)
print(net[0])

おすすめ

転載: www.cnblogs.com/JadenFK3326/p/12094419.html