《动手学深度学习-pytorch》书中定义函数后加#@save的含义

笔者在学习《动手学深度学习-pytorch》一书的时候,发现很多定义的函数后面都会加#@save符号,如下:

def use_svg_display():  #@save
    """使⽤svg格式在Jupyter中显⽰绘图"""
    backend_inline.set_matplotlib_formats('svg')

书中的解释为:“有时,为了避免不必要的重复,我们将本书中经常导⼊和引⽤的函数、类等封装在d2l包中。对于要保存到包中的任何代码块,⽐如⼀个函数、⼀个类或者多个导⼊,我们都会标记为#@save。”于是笔者试着先from d2l import torch as d2l,然后在pycharm控制台键入d2l.use,发现可以补全为d2l.use_svg_display(),这说明use_svg_display()函数是封装在d2l库中的。

另外在序言中有这么一句话,“有时,我们想深⼊研究模型的细节,这些的细节通常会被深度学习框架的⾼级抽象隐藏起来。特别是在基础教程中,我们希望你了解在给定层或优化器中发⽣的⼀切。在这些情况下,我们通常会提供两个版本的⽰例:⼀个是我们从零开始实现⼀切,仅依赖于NumPy接⼝和⾃动微分;另⼀个是更实际的⽰例,我们使⽤深度学习框架的⾼级API编写简洁的代码。”因此笔者认为这里#@save的意思应该是指:虽然书中对这些定义的函数展开讲解,但这些函数都是可以直接调用,封装在d2l库中的,此外也和没有封装的,临时定义的函数做出区分,如下:

def evaluate_loss(net, data_iter, loss): #@save
	"""评估给定数据集上模型的损失"""
	metric = d2l.Accumulator(2) # 损失的总和,样本数量
	for X, y in data_iter:
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值