动手学深度学习pytorch版-填坑-TypeError: normal() received an invalid combination of arguments

在8章的序列模型这里:
在这里插入图片描述

%matplotlib inline
import torch
from torch import nn
from d2l import torch as d2l
T = 1000 # 总共产⽣1000个点
time = torch.arange(1, T + 1, dtype=torch.float32)
x = torch.sin(0.01 * time) + torch.normal(0, 0.2, (T,))
d2l.plot(time, [x], 'time', 'x', xlim=[1, 1000], figsize=(6, 3))

报错:
TypeError: normal() received an invalid combination of arguments - got (int, float, tuple), but expected one of:

  • (Tensor mean, Tensor std, torch.Generator generator, Tensor out)
  • (Tensor mean, float std, torch.Generator generator, Tensor out)
  • (float mean, Tensor std, torch.Generator generator, Tensor out)

``
第8章的代码会报错,跑不了,`

在windows anaconda3环境代码的修改-亲测可行

  1. 修改torch.normal函数用np.random.normal替代(借鉴他人思想)
  2. TypeError: len() of a 0-d tensor-因为d2l包依旧是调用的matplotlib,所以利用np.array修改了原来的写法。画图成功。
    总结:失败应该是由于d2l的底层源码的一些实现问题,或者说还没更新。
import torch
from torch import nn
from d2l import torch as d2l
import numpy as np
from matplotlib import pyplot as plt
T=1000 #总共产生1000个点
time=torch.arange(1,T+1,dtype=torch.float32)
x=torch.sin(0.01*time)+torch.tensor(np.random.normal(0,0.2,size=(T,)),dtype=torch.float32)
d2l.plot(np.array(time),np.array(x),'time','x',xlim=[1,1000],figsize=(6,3))
plt.show()


在这里插入图片描述

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值