文章目录:
- 1、《深度学习框架PyTorch:入门与实践》epub下载在线阅读,求百度网盘云资源
- 2、如何有效地阅读PyTorch的源代码
- 3、求教pytorch这段代码的意思learning_rate = 1e-6
《深度学习框架PyTorch:入门与实践》epub下载在线阅读,求百度网盘云资源
《深度学习框架PyTorch:入门与实践》(陈云)电子书网盘下载免费在线阅读
资源链接:
链接:
提取码:gokn
书名:深度学习框架PyTorch:入门与实践
作者:陈云
豆瓣评分:6.7
出版社:电子工业出版社
出版年份:2018-1
页数:300
内容简介:
《深度学习框架PyTorch:入门与实践》从多维数组Tensor开始,循序渐进地带领读者了解PyTorch各方面的基础知识。结合基础知识和前沿研究,带领读者从零开始完成几个经典有趣的深度学习小项目,包括GAN生成动漫头像、AI滤镜、AI写诗等。《深度学习框架PyTorch:入门与实践》没有简单机械地介绍各个函数接口的使用,而是尝试分门别类、循序渐进地向读者介绍PyTorch的知识,希望读者对PyTorch有一个完整的认识。
《深度学习框架PyTorch:入门与实践》内容由浅入深,无论是深度学习的初学者,还是第一次接触PyTorch的研究人员,都能在学习本书的过程中快速掌握PyTorch。即使是有一定PyTorch使用经验的用户,也能够从本书中获得对PyTorch不一样的理解。
作者简介:
陈云
Python程序员、Linux爱好者和PyTorch源码贡献者。主要研究方向包括计算机视觉和机器学习。“2017知乎看山杯机器学习挑战赛”一等奖,“2017天池医疗AI大赛”第八名。 热衷于推广PyTorch,并有丰富的使用经验,活跃于PyTorch论坛和知乎相关板块。
如何有效地阅读PyTorch的源代码
最近刚开始使用theano, 经验不多,连个基本的模型都跑不通,于是去看了下Keras,源码比较简洁,可以当作theano的示例教程来看,感受如下:
文档看似很全,每个layer是干啥的,每个参数是啥都写了,但是不去读代码,实际很多人是无法从文档理解其具体用法的。这点看issue里的讨论里可以看出。同样,example似乎很多,而且都能直接run,还都是real world的数据集,看似很好,但是实际上,对于新手,如果需要的模型跟example里的不完全一样,不容易搞懂到底需要把输入输出的数据搞成啥格式。举个例子,example都是做的classification的,没有做sequence labeling的例子,如果想拿来做个pos tagging,不知道数据如何组织。当然,这些其实花一天读下代码或者好好翻翻issue讨论就可以解决了,但我相信不少人不会去认真读代码或者看讨论,而是直接换个工具。我感觉目前的doc只有懂了代码的人才能看懂,不懂得看文档还是没啥用。
2.项目很简单所以开发者不多,但是很活跃,每天都有新东西加进去。今天增加了一个新的分支后端可以用theano或者tensorflow了,不过貌似由于不支持scan,backend用tensorflow的没实现recurrent layer。他们也意识到文档的问题,觉得需要为小白用户多加点tutorial而不是光给develop看。
我没用过其他的framework,仅说keras拿来学习theano基本用法,很不错
库本身的代码,比较简单易读,我作为python菜鸟,也能看懂。目前model有sequential和grapgh两种,前者并不是指recurrent而是说网络是一层层堆的(也包括recurrent).其他的主要概念包括layer,regularizer, optimizer,objective都分离开。layer用于build每层的输出函数,model会用最后一层的输出,根据objective和每个layer的regularizer来确定最终的cost,然后在update时用optimizer来更新参数。把这四个看下加上model里的fit函数,就会用theano啦。很多模型都能cover,seq2seq这种也有现成的可用。建议不要光看example,多看看github上的 issues讨论,实在找不到,直接提问。效率方面,我不懂theano怎么优化,感觉keras的这种封装,没什么成本,跟自己用原生theano是一样的。当然,theano本身就好慢啊。。估计是我不懂用吧。。
用于测试函数式返回的数值是否有错。如果有错,该函数返回
求教pytorch这段代码的意思learning_rate = 1e-6
pytorch中这段代码的意思是把学习率learning_rate设为0.000001
但是设置学习率不是给learning_rate赋值就可以完成的,
在pytorch中设置learning_rate有六种方法(这里的LR就是LearningRate的缩写)
1等步长间隔调整学习率
optim.lr_scheduler.StepLR(optimizer, step_size, gamma=0.1, last_epoch=-1)
2cosine学习率
optim.lr_scheduler.CosineAnnealingLR(optimizer, T_max, eta_min=0)
3指数衰减学习率
optim.lr_scheduler.ExponentialLR(optimizer, gamma, last_epoch=-1)
4自适应调整学习率
optim.lr_scheduler.ReduceLROnPlateau(optimizer, mode='min', factor=0.1, patience=10,verbose=False, threshold=1e-4, threshold_mode='rel',cooldown=0, min_lr=0, eps=1e-8)
5非等间隔调整学习率
optim.lr_scheduler.MultiStepLR(optimizer, milestones, gamma=0.1, last_epoch=-1)
6自定义网络层隔学习率
optim.lr_scheduler.LambdaLR( optimizer, lr_lambda, last_epoch=-1)
我给你一个等步长间隔调整学习率的例子,你看看吧
import torch
import torch.optim as optim
from torch.optim import lr_scheduler
from torchvision.models import AlexNet
model = AlexNet(num_classes=2)
optimizer = optim.SGD(params = model.parameters(), lr=0.05)
#每10次迭代,lr = lr * gamma
scheduler = lr_scheduler.StepLR(optimizer, step_size=10, gamma=0.1)
for epoch in range(40):
scheduler.step()
lr = scheduler.get_lr()
print(epoch, scheduler.get_lr()[0])
源代码(注意源代码的缩进)
, optimizer,objective都分离开。layer用于build每层的输出函数,model会用最后一层的输出,根据objective和每个layer的regularizer来确定最终的cost,然后在update时用optimizer来更新参数。把这四个看下加上mod
ningRate的缩写)1等步长间隔调整学习率optim.lr_scheduler.StepLR(optimizer, step_size, gamma=0.1, last_epoch=-1)2
3指数衰减学习率optim.lr_scheduler.ExponentialLR(optimizer, gamma, last_epoch=-1)4自适应调整学习率optim.lr_scheduler.ReduceLROnPlateau(optimizer, mode='mi
odel.parameters(), lr=0.05)#每10次迭代,lr = lr * gammascheduler = lr_scheduler.StepLR(optimizer, step_size=10, gamma=0.1)for epoch in range(40):s
实际很多人是无法从文档理解其具体用法的。这点看issue里的讨论里可以看出。同样,example似乎很多,而且都能直接run,还都是real world的数据集