Giter VIP home page Giter VIP logo

code-of-learn-deep-learning-with-pytorch's Introduction

深度学习入门之PyTorch

Learn Deep Learning with PyTorch

非常感谢您能够购买此书,这个github repository包含有深度学习入门之PyTorch的实例代码。由于本人水平有限,在写此书的时候参考了一些网上的资料,在这里对他们表示敬意。由于深度学习的技术在飞速的发展,同时PyTorch也在不断更新,且本人在完成此书的时候也有诸多领域没有涉及,所以这个repository会不断更新作为购买次书的一个后续服务,希望我能够在您深度学习的入门道路上提供绵薄之力。

注意:由于PyTorch版本更迭,书中的代码可能会出现bug,所以一切代码以该github中的为主。

image.png

配置环境

书中已经详细给出了如何基于Anaconda配置python环境,以及PyTorch的安装,如果你使用自己的电脑,并且有Nvidia的显卡,那么你可以愉快地进入深度学习的世界了,如果你没有Nvidia的显卡,那么我们需要一个云计算的平台来帮助我们学习深度学习之旅。如何配置aws计算平台

以下的课程目录和书中目录有出入,因为内容正在更新到第二版,第二版即将上线!!

课程目录

part1: 深度学习基础

part2: 深度学习的应用

一些别的资源

关于深度学习的一些公开课程以及学习资源,可以参考我的这个repository

可以关注我的知乎专栏博客,会经常分享一些深度学习的文章

关于PyTorch的资源

我的github repo pytorch-beginner

pytorch-tutorial

the-incredible-pytorch

practical-pytorch

PyTorchZeroToAll

Awesome-pytorch-list

Acknowledgement

本书的第二版内容其中一些部分参考了 mxnet gluon 的中文教程,通过MXNet/Gluon来动手学习深度学习

Gluon 是一个和 PyTorch 非常相似的框架,非常简单、易上手,推荐大家去学习一下,也安利一下 gluon 的中文课程,全中文授课,有视频,有代码练习,可以说是最全面的中文深度学习教程。

code-of-learn-deep-learning-with-pytorch's People

Contributors

hierom avatar l1aoxingyu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

code-of-learn-deep-learning-with-pytorch's Issues

关于深度学习第七章源码

廖老师,您好
我是您写的<深度学习入门之pytorch>的一名读者。我是深度学习的初学者,并刚开始用python语言和pytorch框架编程。在学到第七章深度学习实战这一章里,猫狗大战,方法一中对数据和标签如何处理以及训练过程不是很明确,deep dream 也存在类似的情况。。。请问有这一章节完整的代码吗?我查阅了您的repository,恰好没有找到。。。希望廖老师能附上完整代码和简要注释(感激不尽)。。。。
谢谢廖老师

第五章 rnn用于时间序列的分析

请问老师这个问题怎么解决觉得?

if (e + 1) % 100 == 0: # 每 100 次输出结果
---> 12 print('Epoch: {}, Loss: {:.5f}'.format(e + 1, loss.data[0]))

IndexError: invalid index of a 0-dim tensor. Use tensor.item() to convert a 0-dim tensor to a Python number

Chapter_3_LogisticRegression_block15

change:

acc = (mask == y_data).sum().data[0] / y_data.shape[0]
if (e + 1) % 200 == 0:
print('epoch: {}, Loss: {:.5f}, Acc: {:.5f}'.format(e+1, loss.data[0], acc))
)

to

acc = (mask == y_data).sum().numpy() / y_data.size()[0]
if (e + 1) % 200 == 0:
print('epoch: {}, Loss: {:.5f}, Acc: {:.5f}'.format(e+1, loss.detach().numpy(), acc)

第三章逻辑斯蒂回归的代码问题

画出参数更新之前的结果

w0 = w[0].data[0]
w1 = w[1].data[0]
b0 = b.data[0]

plot_x = np.arange(0.2, 1, 0.01)
plot_y = (-w0 * plot_x - b0) / w1 # 上面会导致乘法不能正常操作, 应该讲w0,w1,w2转换成numpy array 才能调通

problem in autograd

Anser of the exercise is wrong, the second column of j is wrong due to wrong variable name reference in the code: "m.grad.data.zero_() # 归零之前求得的梯度", change "m" to "x" to fix it.

Ch5 RNN LSTM 中心化错误

chapter5_RNN/time-series/lstm-time-series.ipynb

应该是

dataset = list(map(lambda x: (x - min_value ) / scalar, dataset))

没有提供示例的数据

code-of-learn-deep-learning-with-pytorch/chapter3_NN/logistic-regression/logistic-regression.ipynb没有提供data.txt,导致示例代码无法允许

P.72 data_tf lose reshape? 书72页是否缺失一维化转换

72页定义了数据转换:
data_tf=transforms.Compose([transforms.ToTensor(),transforms.Normalize([0.5],[0.5])])
运行之后出错,
RuntimeError: size mismatch, m1: [1792 x 28], m2: [784 x 300] at c:\programdata\miniconda3\conda-bld\pytorch-cpu_1524541161962\work\aten\src\th\generic/THTensorMath.c:2033
书中和deep-nn代码里面的data_tf不同,代码样例里面data_tf有reshape操作

fix one plot problem in nn-sequential-model

under MacOS X 10.13, conda, python 3.6 Matplotlib 2.1.2

  1. in plot_decision_boundary:
    change "plt.scatter(x[:, 0], x[:, 1], c=y, cmap=plt.cm.Spectral)" to
    "plt.scatter(x[:, 0], x[:, 1], c=y.reshape(-1), cmap=plt.cm.Spectral)"
  2. change "plt.scatter(x[:, 0], x[:, 1], c=y, s=40, cmap=plt.cm.Spectral)" to
    "plt.scatter(x[:, 0], x[:, 1], c=y.reshape(-1), s=40, cmap=plt.cm.Spectral)"

fcn模型结构

你好,
我在看您博客上介绍fcn的那篇文章,有个地方不太懂,特来讨教:
最简单的 fcn 前面是一个去掉全连接层的预训练网络,然后将去掉的全连接变为 1x1 的卷积,输出和类别数目相同的通道数,比如 voc 数据集是 21 分类,那么输出的通道数就是 21,然后最后接一个转置卷积将结果变成输入的形状大小,最后在每个 pixel 上做一个分类问题,使用交叉熵作为损失函数就可以了。

通道数为什么也得是21,这个地方不太懂。。

loss function in "logistic-regression.ipynb "

计算loss的函数:

def binary_loss(y_pred, y):
    logits = (y * y_pred.clamp(1e-12).log() + (1 - y) * (1 - y_pred).clamp(1e-12).log()).mean()
    return -logits

前半部分是不是应该使用平均值?即

logits = (y * y_pred.clamp(1e-12).log().mean() + (1 - y) * (1 - y_pred).clamp(1e-12).log()).mean()

关于多项式回归的代码

作者您好,请问您的网页上进行多项式回归没有用类的方法,但是书中这一问题用了类的方法,那么请问这两种方法用哪种比较适合,谢谢!

proper acknowledgement

It's great to see a new chinese hands-on book for DL. But I noticed several tutorials are very similar https://github.com/mli/gluon-tutorials-zh. It is often recommended to acknowledge the original author. For example, people often put the following sentence at the beginning or end of the tutorial:

This tutorial is motivated (or adapted) from xxx

关于Mxtorch

老师你好,我想问一下为什么要写一个Mxtorch呢,我们自己写代码的时候用什么替代呢?

Chapter_3_logisticRegression_'plot_y = (-w0 * plot_x - b0) / w1'

In[10]:# 画出参数更新之前的结果
w0 = w[0].data[0]
w1 = w[1].data[0]
b0 = b.data[0]

plot_x = np.arange(0.2, 1, 0.01)
plot_y = (-w0 * plot_x - b0) / w1
TypeError
TypeError: mul() received an invalid combination of arguments - got (numpy.ndarray), but expected one of:

  • (Tensor other)
    didn't match because some of the arguments have invalid types: (numpy.ndarray)
  • (Number other)
    didn't match because some of the arguments have invalid types: (numpy.ndarray)

关于cat vs dog中的维度问题

net.py文件中的这段:
vgg = models.vgg19(pretrained=True)
self.feature = nn.Sequential(*list(vgg.children())[:-1])
self.feature.add_module('global average', nn.AvgPool2d(9))

前两行代码的输出尺寸是7*7,而第三行平均池化的卷积核是9,运行后会出现这样的错误:Given input size: (512x7x7). Calculated output size: (512x0x0). Output size is too small

我的pytorch版本是1.6,是不是版本的问题?但按理说,Pytorch版本的迭代不会影响VGG这种经典网络的参数啊。这到底是怎么回事呢?

权重衰减可以通过 torch.optim.lr_scheduler 的相关类完成,从而使权重衰减和训练逻辑分离

@L1aoXingyu

作者你好,非常感谢您的分享。这里我提出一点小小的意见。

权重衰减可以通过 torch.optim.lr_scheduler 的相关类如 ExponentialLR完成,从而使权重衰减和训练逻辑分离。作权重衰减相关介绍的时候可以这么来介绍(实际使用也是这么使用比较广泛)。

https://pytorch.org/docs/stable/optim.html#how-to-adjust-learning-rate

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.