日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Pytorch(7)-自己设计神经网络会遇到的问题

發(fā)布時間:2023/12/13 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Pytorch(7)-自己设计神经网络会遇到的问题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

操作pytorch架構(gòu)遇到的問題

  • 1.網(wǎng)絡(luò)參數(shù)初始化
  • 2.查看當(dāng)前可學(xué)習(xí)參數(shù)
  • 3.增加可學(xué)習(xí)的參數(shù)
  • 4.參數(shù)優(yōu)化函數(shù)Adagrad
  • 5.直接修改網(wǎng)絡(luò)梯度值
  • 6.optimizers.zero_grad()報錯
  • 7.tensor.detach() 和 tensor.data 的區(qū)別

1.網(wǎng)絡(luò)參數(shù)初始化

在pytorch中,有自己默認(rèn)初始化參數(shù)方式,所以定義好網(wǎng)絡(luò)以后,沒有特殊需求,不需要顯式進(jìn)行初始化操作。也可調(diào)用內(nèi)置特定初始化函數(shù),詳見:https://blog.csdn.net/VictoriaW/article/details/72872036

也可以自定義初始化方式,詳見:https://blog.csdn.net/qq_36338754/article/details/97756378

類神經(jīng)網(wǎng)絡(luò)層 Vs 函數(shù)神經(jīng)網(wǎng)絡(luò)層:https://blog.csdn.net/victoriaw/article/details/72869680

2.查看當(dāng)前可學(xué)習(xí)參數(shù)

函數(shù)查看現(xiàn)在的全部可訓(xùn)練參數(shù),定義網(wǎng)絡(luò)net之后查看.state_dict()屬性

net.state_dict()

或者

net.named_parameters()

3.增加可學(xué)習(xí)的參數(shù)

在網(wǎng)絡(luò)初始化函數(shù)中添加nn.Parameter類型變量,即可以實現(xiàn):增加額外的可學(xué)習(xí)參數(shù)的操作。

self.coefficient = torch.nn.Parameter(torch.Tensor([1.55]))

參考資料:https://blog.csdn.net/qq_19672579/article/details/79195568

4.參數(shù)優(yōu)化函數(shù)Adagrad

Adagrad是解決不同參數(shù)應(yīng)該使用不同的更新速率的問題。Adagrad自適應(yīng)地為各個參數(shù)分配不同學(xué)習(xí)率的算法。更新公式:
wt+1=wt+ηgt∑i=0tgiw^{t+1}=w^t+\eta \frac{g^t}{\sqrt{\sum_{i=0}^tg^i}}wt+1=wt+ηi=0t?gi?gt?

隨著更新次數(shù)增加,更新越來越慢。
參考資料:https://www.jianshu.com/p/a8637d1bb3fc

5.直接修改網(wǎng)絡(luò)梯度值

A.grad=num

num 為tensor 類型

6.optimizers.zero_grad()報錯

Traceback (most recent call last):
File “/home/pp/.local/share/umake/ide/pycharm-professional/helpers/pydev/pydevd.py”, line 1758, in
main()
File “/home/pp/.local/share/umake/ide/pycharm-professional/helpers/pydev/pydevd.py”, line 1752, in main
globals = debugger.run(setup[‘file’], None, None, is_module)
File “/home/pp/.local/share/umake/ide/pycharm-professional/helpers/pydev/pydevd.py”, line 1147, in run
pydev_imports.execfile(file, globals, locals) # execute the script
File "/home/pp/.local/share/umake/ide/pycharm-professional/helpers/pydev/_pydev_imps/pydev_execfile.py", line 18, in execfile
exec(compile(contents+"\n", file, ‘exec’), glob, loc)
File “/home/pp/PycharmProjects/Stein-Variational-Gradient-Descent-master/python/cyy_bayesian_nn_1.py”, line 296, in
svgd = svgd_bayesnn(X_train, y_train, batch_size=batch_size, n_hidden=n_hidden, max_iter=max_iter)
File “/home/pp/PycharmProjects/Stein-Variational-Gradient-Descent-master/python/cyy_bayesian_nn_1.py”, line 127, in init
optimizer.zero_grad()
File “/home/pp/anaconda3/envs/py36_torch/lib/python3.6/site-packages/torch/optim/optimizer.py”, line 163, in zero_grad
p.grad.detach()
RuntimeError: Can’t detach views in-place. Use detach() instead

解決嘗試:變換optimizer.zero_grad()的位置,沒用,手動置0 吧.

A.grad.zero_()

參考資料:https://blog.csdn.net/a19990412/article/details/85247465

7.tensor.detach() 和 tensor.data 的區(qū)別

x .data 返回和 x 的相同數(shù)據(jù) tensor, 但不會加入到x的計算歷史里,且require s_grad = False, 這樣有些時候是不安全的, 因為 x.data 不能被 autograd 追蹤求微分 。
x.detach() 返回相同數(shù)據(jù)的 tensor ,且 requires_grad=False ,但能通過 in-place 操作報告給 autograd 在進(jìn)行反向傳播的時候。

參考資料:https://blog.csdn.net/DreamHome_S/article/details/85259533

總結(jié)

以上是生活随笔為你收集整理的Pytorch(7)-自己设计神经网络会遇到的问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。