ノートPytorch入門
Pytorchは何ですか?
Pytorchトーチは、Pythonを移植することである(トーチは、もともとのLua言語使用しました)
これは、動的なプロセスであり、かつデータが一緒に構築されています。
tensor.dot(tensor1、tensor2)//各位置におけるテンソル、次いで乗算を追加
プリント(ネット)5月出力ネットワーク構造
動的Pytorch:ネットワークの複数のパラメータは、例えば、固定されなくてもよいです。
出典:https://morvanzhou.github.io/tutorials/machine-learning/torch/5-01-dynamic/
最も典型的な例は、時々時間ステップのRNNが、あるいは訓練と同じと時間をテストし、されません、RNNである
batch_size
とtime_step
、頭痛で、その後、頭痛人々のTensorflow Tensorflow同じではありません。ハハ、A場合動的な計算グラフトーチは、我々はそれがまた、書き込みにはるかに簡単です、もっと理解したいです。使用レイヤ活性化機能および機能、効果に差がありません
使用torch.nn.Sequentialはすぐにモデルを構築します
torch.nn.Sequential(
#eg
torch.nn.linear(2,10)、
torch.nn.ReLU()、
torch.nn.linear(10,2)、
)
本明細書において使用される匿名オブジェクトである(出力は隠され表示し、予測する際に、同じようすなわちself.hiddenとself.predict)、その後、プリントアウトしても型の名前ではありません。
ニューラルネットワークを保存および取得
保存
PKLという名前の全体ニューラルネットワークモデル、タイプの保存torch.save(ネット、「net.pkl」)#
パラメータのみ保存torch.save(net.state_dict()、「net_params.pkl」)#ネットワーク全体を保存せず
エキス
ネット= torch.load( "net.pkl")#エキスネットワーク
NET2 = torch.nn.Sequential(
ここでは単にシーケンシャルネットワークを作成する例を挙げており、これは、抽出パラメータを正確に元のネットワークとネットワーク構造と同じに設定する前に、ある匿名メソッドが同じである場合、ない場合
)
net2.load_state_dict(torch.load( "net_params.pkl"))#エキスのみパラメータ
バッチ訓練(ミニバッチトレーニング)
BATCH_SIZE=5 x=torch.linspace(1,10,10) y=torch.linspace(10,1,10) torch_dataset=Data.TensorDataset(data_tensor=x,target_tensor=y) loader=Data.DataLoader( dataset=torch_dataset, batch_size=BATCH_SIZE, shuffle=True,#shuffle如果设置为true,则每次batch都是选择的不一样的数据,设置为False,则每次batch的数据都一样。 num_workers=2,#设置提取数据时候的线程数量 ) for epoch in range(3): for step,(batch_x,batch_y)in enumerate(loader):#enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。 #例如本例中,那个step就是提取的index
スーパーパラメータは:機械学習の文脈では、スーパーパラメータは、学習プロセスの設定値の開始前のパラメータではなく、トレーニングによって得られたパラメータデータです。通常の状況下では、超パラメータ最適化の必要性は、パフォーマンスと学習の有効性を改善するハイパー順序を最適化するために、機械学習のセットを選択します。
モデル、そのモデルとトレーニングプロセス制御の前にグローバル変数で定義されるようにこのように、超パラメータは、典型的には、手動で、指定されています。伝統的に、首都で表されます。
-
私はそれがループの第三だと思うと一緒に、非常に精神的なジップ。