YutaroOgawa / pytorch_advanced

書籍「つくりながら学ぶ! PyTorchによる発展ディープラーニング」の実装コードを配置したリポジトリです
MIT License
844 stars 334 forks source link

5-1-2_DCGANで現れるメッセージについて 【転置畳み込みの例】m.weight→m.weight.data #160

Open BoriBori446 opened 3 years ago

BoriBori446 commented 3 years ago

Pytorchを含め、基本的な理解の浅さによるものと自覚はあります。 以下のメッセージを解決できずにいます。処置についてご教示いただけないでしょうか。


RuntimeError Traceback (most recent call last)

in () 6 print("通常の畳み込み") 7 m = nn.Conv2d(1, 1, 2, stride=1, bias=False) ----> 8 m.weight[0, 0, 0, 0] = 1 9 m.weight[0, 0, 0, 1] = 2 10 m.weight[0, 0, 1, 0] = 3 RuntimeError: a view of a leaf Variable that requires grad is being used in an in-place operation.
yoshiyama commented 3 years ago

m.weight.data[0, 0, 0, 0] = 1 m.weight.data[0, 0, 0, 1] = 2 m.weight.data[0, 0, 1, 0] = 3 で解決できるかもしれません.

YutaroOgawa commented 3 years ago

@BoriBori446 さま

ご質問をありがとうございます。

こちら、5_gan_generation/5-1_2_DCGAN.ipynb の「転置畳み込みの例」の部分と理解しました。

Google Colabで該当部分を動作させ、同様にエラーになることを確認しました。

本書がPyTorch v1.0の頃に執筆されたため、現在のPyTorchではエラーになる箇所があり、その一つとなります。

解決策は @yoshiyama さま、誠にありがとうございます。

ご提示いただいた通りです。

(修正) 5-1_2_DCGAN.ipynbの「転置畳み込みの例」 の


m.weight[0, 0, 0, 0] = 1
など
↓

m.weight.data[0, 0, 0, 0] = 1

本Issueに誤植ラベルを貼り、他の読者の皆様の参考とさせてください。 貴重な情報を誠にありがとうございます。

BoriBori446 commented 3 years ago

@yoshiyama 様 早々のお返事ありがとうございました。 @YutaroOgawa 様 同、ご対応ありがとうございます。

後続のコードも含めて、無事に動作を確認することができました。 Pytorch始め、使用されているライブラリのバージョン違いに対する考慮不足、失礼致しました。引き続き読み進めて参ります。

YutaroOgawa commented 3 years ago

@BoriBori446 さま

早速の確認ありがとうございます。

ライブラリのバージョン問題は、致し方なく、私も、多くの著者も 現行コードでの不具合が分かり、非常に助かります。

誠にありがとうございました!