PyTorch 深度学习实践 第3讲

 
import matplotlib.pyplot as plt
#初试数据
x_data=[1.0,2.0,3.0]
y_data=[2.0,4.0,6.0]
#设置初始参数w的值为1
w=1.0

def forward(x):#预测函数,根据x得到y_pre
    return x*w
def cost(xs,ys):#损失函数,计算当前参数w的值为1的时候的平均损失值
    cost=0
    for x,y in zip(xs,ys):
        y_pred=forward(x)
        cost+=(y-y_pred)**2#cost=cost+(y-y_pre)**2
    return cost/len(xs)#这里len(列表)得到列表中的元素个数

def gradient(xs,ys):#计算当前损失值loss对参数w的求导
    grad=0
    for x,y in zip(xs,ys):
        grad+=2*x*(x*w-y)
    return grad/len(xs)

epoch_list=[]
cost_list=[]
print("predict(before training)",4,forward(4))
for epoch in range(500):
    #以epoch为0举例子
    cost_val=cost(x_data,y_data)#在epoch为0的情况下,计算w为1时候的平均损失值
    grad_val=gradient(x_data,y_data)#同理,计算w为1情况下损失值对参数w的导数,这将决定w的方向
    w=w-0.01*grad_val#学习率0.01,根据计算的求导的值和学习率来改变w的值,进入到下一个epoch
    #解释负号:
    #4.	调参问题:梯度表示了损失函数在当前参数值下的变化率。
    #梯度下降问题中,所谓的梯度也就是损失值对可变参数的求导。当梯度为正,稍稍增大参数就会引起损失值的增大,故此时应该减小参数所以使用负号。当梯度为负,减小参数的值会引起损失值的增大,故应该增大参数,所以使用负号。所以,在梯度下降过程中,我们应该使用负号
    print("epoch:",epoch,"w=",w,"loss=",cost_val)
    epoch_list.append(epoch)
    cost_list.append(cost_val)

print("predict (after training)",4,forward(4))#输入4,可以得到4*当前w的值
plt.plot(epoch_list,cost_list)
plt.ylabel("cost")
plt.xlabel("epoch")
plt.show()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《PyTorch深度学习实践》是由牟大恩编写的一本介绍PyTorch深度学习实践指南。这本书主要分为两部分,第一部分介绍了PyTorch的基本概念和使用方法,包括PyTorch的基本原理、张量运算、自动求导、数据集、数据加载等;第二部分涵盖了构建深度学习网络的高级主题,包括卷积神经网络、循环神经网络、生成对抗网络、迁移学习等。 《PyTorch深度学习实践》的优点在于其内容深入浅出,对于初学者也很友好。书中提供了很多实例和代码,可以帮助读者更好地理解和掌握PyTorch的使用。此外,这本书还介绍了一些实际应用案例,可以让读者了解深度学习在不同领域的应用。 如果您正在学习PyTorch深度学习,或者正在进行深度学习相关研究,那么《PyTorch深度学习实践》是一本很有价值的参考书籍。无论您是初学者还是有经验的研究人员,都可以从这本书中获得一些实用的知识和灵感。如果您对这本书感兴趣,可以在各大图书网站上下载或购买。 ### 回答2: PyTorch是近年来非常受欢迎的深度学习框架之一。而《PyTorch深度学习实践》这本书则是由牟大恩所写,是一本介绍PyTorch框架及其应用的指南。 本书主要分为三个部分:第一部分介绍了Python基础、NumPy、Tensor和PyTorch基础,这对于初学者非常重要;第二部分是深度学习PyTorch的应用,包括图像分类、预训练模型、目标检测和分割等内容;第三部分则涉及更高级的深度学习技术,如生成对抗网络、自然语言处理和强化学习。 此外,本书还提供了大量的实例代码和Jupyter笔记本,供读者练习和实践。这些案例覆盖了诸如文本分类、时间序列分析、语音识别等不同领域。 总之,如果你想学习深度学习PyTorch框架,特别是如果你已经具有Python编程经验,那《PyTorch深度学习实践》是一本非常实用的图书。它可以帮助你深入了解该框架,学习如何构建和训练深度神经网络,并通过实践掌握更高级的深度学习技巧。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值