【d2l包】关于李沐《动手学深度学习》中的AttributeError: module ‘d2l.torch‘ has no attribute ‘train_ch3‘问题

1.背景

最近在学李沐老师的《动手学深度学习》,有一个d2l包由于时间原因,安装起来容易报错,查了一些资料,看到一些很麻烦的,但经过尝试发现其实单纯的就是环境依赖不匹配问题。

d2l相当于一个收集函数的包,只要在一个py文件中定义函数def func():时在冒号后加上了注释#@save,那就可以在另一个任意路径的py文件下以d2l.pytorch.func调用这个函数。

我遇到的问题如下:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Cell In[11], line 3
      1 num_epochs, lr = 10, 0.1
      2 updater = torch.optim.SGD(params, lr=lr)
----> 3 d2l.train_ch3(net, train_iter, test_iter, loss, num_epochs, updater)

AttributeError: module 'd2l.torch' has no attribute 'train_ch3'

2.问题原因

可能有两个原因:
① python版本太高,建议按照当时编书时李沐老师用的3.8版本python(但这个可能很小)
② 主要原因,d2l版本号太高,查看自己的d2l版本号是不是大于1了,需要卸载并安装0.17.5版本

这里我建议在当前环境下用这条命令即可(如果还没pip过d2l那直接执行也是一样的):

pip install d2l==0.17.5

(再提一嘴,跑这条命令的时候不要开魔法)

3.参考

参考来自github上关于d2l的issue:d2l-issue
在这里插入图片描述

如果还是报错,那就新建一个虚拟环境,用python3.8,下载0.17.5版本的d2l就行了。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值