TypeError: cannot unpack non-iterable NoneType object
生活随笔
收集整理的這篇文章主要介紹了
TypeError: cannot unpack non-iterable NoneType object
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
TypeError: cannot unpack non-iterable NoneType object(類型錯誤:無法解包非迭代的NoneType對象)
情況:使用pytorch訓(xùn)練模型,問題出現(xiàn)在 loss.backward() 這一行代碼
網(wǎng)上查了很多資料,大家相同的錯誤來源不同,別人的解決方式?jīng)]法解決我的問題。
沒有系統(tǒng)學(xué)習(xí) pytorch 語法就直接上手寫代碼,著實(shí)難受,所以放下bug,去學(xué)習(xí)了一下語法知識。
分享一篇不錯的文章 深入理解 TORCH.NN
跟著練習(xí)了一遍懂了很多,然后一眼就看出自己代碼的問題在哪里了。
原代碼:
# Train and evaluate model = HeteroRGCN(G, 8, 8, 8) opt = torch.optim.Adam(model.parameters(), lr=0.01, weight_decay=5e-4) user_embedding, item_embedding = model(G)for epoch in range(100):for data in dataloader:user, item_p, item_n = data ···修改后:
# Train and evaluate model = HeteroRGCN(G, 8, 8, 8) opt = torch.optim.Adam(model.parameters(), lr=0.01, weight_decay=5e-4)for epoch in range(2):for data in dataloader:user_embedding, item_embedding = model(G)user, item_p, item_n = data ···關(guān)鍵:修改了 user_embedding, item_embedding = model(G) 的位置
執(zhí)行 model = HeteroRGCN(G, 8, 8, 8) 這一行代碼的時候,是對模型進(jìn)行初始化,即執(zhí)行模型的 init 函數(shù)部分,
執(zhí)行 user_embedding, item_embedding = model(G) 這一行代碼的時候,是對模型進(jìn)行前向傳播,
(所以把他放在外面的時候,反向反向傳播就認(rèn)為是 NoneType 對象???)
總結(jié)
以上是生活随笔為你收集整理的TypeError: cannot unpack non-iterable NoneType object的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android官方开发文档Trainin
- 下一篇: 基于主动学习算法减少人工标注量,提升文本