对于常用的数据集,PyTorch 提供了封装好的接口供用户快速调用,这些主要保存在 torchvision
中。torchvision
实现了常用的图像数据加载功能,例如 Imagenet、CIFAR10、MNIST 等,以及常用的数据转换操作,这极大方便了数据加载,并且具有可重用性。
- Nov 14, 2018MORE
理解 batch_size
Nov 14, 2018MORE梯度下降主要有以下三种:
- batch gradient descent:即批梯度下降,其计算开销大,计算速度慢,不支持在线学习;
- stochastic gradient descent:即随机梯度下降,收敛性能不太好,可能 hit 不到最优点;
- mini-batch gradient descent:即小批量梯度下降,通常所说的 batch_size 指的就是这个批量的大小。
PyTorch 学习笔记(二)
Nov 14, 2018MORE1 . 在 Tensor 上的所有操作,
autograd
都能为它们自动提供微分,避免了手动计算导数的复杂过程,只需要设置tensor.requires_grad=True
即可。Input:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17import torch as t
x = t.ones(2, 2, requires_grad=True)
# 上一步等价于
# x = t.ones(2, 2)
# x.requires_grad = True
print(x)
y = x.sum()
print(y)
print(y.grad_fn)
y.backward() # 反向传播计算梯度
print(x.grad)Output:
grad
在反向传播过程中是累加的,每一次运行反向传播,梯度都会累加之前的梯度,因此反向传播之前需要把梯度清零。Input:
1
2
3
4
5
6
7
8
9
10y.backward()
print(x.grad)
y.backward()
print(x.grad)
# 以下划线结束的函数是 inplace 操作,会修改自身的值
x.grad.data.zero_()
y.backward()
print(x.grad)Output:
PyTorch 学习笔记(一)
Nov 14, 2018MORE1 .
Tensor
可以认为是一个高维数组,可以使用 GPU 进行加速。Input:
1
2
3
4
5
6
7
8
9
10
11
12import torch as t
x = t.Tensor(5, 3) # 只分配了空间,未初始化
x = t.Tensor([[1, 2], [3, 4]])
print(x)
# 使用 [0, 1] 均匀分布随机初始化二维数组
x = t.rand(5, 3)
print(x)
# 查看 x 的形状
print(x.size())
# 查看 x 中列的个数,两种写法等价
print(x.size()[1])
print(x.size(1))Output:
torch.Size
是 tuple 对象的子类,因此它支持 tuple 的所有操作,如x.size()[0]
等。自学编程那些事儿
Jul 31, 2017MORE我本人是从机械专业转过来学习编程的,在这个过程中我大概跟大多数半路出家的人一样,迷茫过,纠结过,努力过,也怅然若失过,同时也有在意想不到的拐角处收获到额外的惊喜。这一路不能说顺顺利利,但也算是跌跌撞撞地走过来了。虽然我的水平还远不至于到了能给别人指点一二的地步,不过我倒不介意把我认为最重要的几点浅薄的看法分享给大家。
说说人工智能、大数据、医疗和教育(三)
Jul 23, 2017MORE在正式开始今天的主题之前,我想跟大家说的是,我们真的处在了一个非常非常好的时代,很多行业里的人士普遍认为,中国仍然有很好的长期发展的机遇,从 1990 年开始的 40 年间,中国会超越美国成为世界第一大经济体,并且,如果政治稳定的话,之后还会伴随着这个浪潮的惯性继续向前发展很长一段时间。而我们这帮 90 后们,算算时间点的话,恰恰会是这个高速发展时代的中坚力量。我们运气很好地碰在了一个高速发展的国家里,并且,又同样运气很好地碰在了人类历史上第四次技术革命发展的转折点 —— 从信息时代向智能时代转变的关键点上。《必然》一书的作者凯文凯利认为,以后几十年里人类生活离不开的产品还远远没有被发明出来。其实一个人一生中很难碰到一次技术革命的浪潮,而我们居然在一个青春年华的合适年纪里神奇地遇上了,这是我们的幸运。对于这一波浪潮而言,我们可以将其看成是每个人一生中只能玩一次的游戏,错过了就是错过了,再没机会,到底是眼巴巴看着还是投身其中闯荡一番?我相信很多人心中其实都有了答案。那么,时代的机遇究竟在哪里呢?这是今天的文章重点谈的内容。首先,既然我们是处于第四次技术革命的关键转折点上,我们不妨来回顾一下之前的三次技术革命里都发生了什么。
说说人工智能、大数据、医疗和教育(二)
Jul 22, 2017MORE在昨天的文章中我们详细说明了什么是机器智能,用数据驱动获取机器智能的方法,谈了机器智能的一个必要因素就是大数据,并且讲了大数据对于人类生活的预测指导作用,今天我们在此基础之上,主要来谈谈医疗的内容,基于一篇文章的篇幅所限,明天我们再来谈教育。
当今医疗领域所面对的问题主要有三个方面:第一,看病贵;第二,医疗资源分配不均衡,好的医疗设备和技术精湛的名医大都集中在经济比较发达的地区,经济不发达地区的人面临的不仅仅是看不起病的问题,同时还有生了重病找不到好的医生的问题;第三,很多疾病,譬如癌症,人类仍然没有找到可靠的能够使其得到稳定治愈的方法。其实针对这三个方面的问题,大数据和机器智能的发展都能够提供一个理论上行得通的解决方案。下面我们一一来谈。
说说人工智能、大数据、医疗和教育(一)
Jul 21, 2017MORE什么是人工智能?维基百科上是这么说的:
人工智能(英语:Artificial Intelligence, AI)亦称机器智能,是指由人工制造出来的系统所表现出来的智能。通常人工智能是指通过普通电脑实现的智能。该词同时也指研究这样的智能系统是否能够实现,以及如何实现的科学领域。
简而言之,就是让人制造的机器具有从事智能活动的能力。实际上,在人工智能发展的早期阶段,科学家就是通过让机器模拟人脑产生智能的方式使其具备从事简单智能活动的能力,人的智能活动很多时候依赖于人类的意识,然而冷冰冰的机器是不能也不会产生意识的,所以实际上这种方法在后来就遇到了很多难以逾越的障碍,几乎没有做出什么突破性的成果。人类和机器之间一个重要的区别就是人类是有意识的,人类能够感知自我的存在和行为,而机器不行。很多媒体报道什么家用机器人跳水自杀之类的新闻显然是哗众取宠和危言耸听,再加上各种科幻电影的渲染,在一些不知所以然的群体中制造了莫名其妙又毫无必要的恐慌,担心机器哪天意识觉醒之后会成为人类的威胁,相比于担忧这些压根儿就不存在的事情,人类更应该考虑的是将来自己的工作机会被机器取代了该怎么办?关于这一点我会在后文提到。
言归正传,这种让机器模拟人脑产生智能的方式使其具有智能的方法,我们一般称之为传统的人工智能方法。实际上,现在人工智能领域所取得的一系列重大突破性成果,如语音识别、图像识别、机器翻译等,都是采用数据驱动而不是通过模拟人类产生智能的方式取得的。在怎么发展机器智能这条路上,人类大概挣扎了十多年的时间才找到了数据驱动发展机器智能的方法,这个过程就好比人类学会飞翔一样,最初通过模拟鸟类的飞翔给自己的双手绑上插了羽毛的翅膀,然后从高处一跃而下,当然结果可想而知了,后来空气动力学的发展让人类明白了可以利用其原理造出飞机,才真正实现了飞翔的梦想。飞机不需要像鸟儿一样有一双长满羽毛的翅膀才能飞起来,飞机有自己飞起来的方式,与此类似,机器产生智能的方式也不需要向人类一样,可以采用完全不同于人类思维的数据驱动的方式让机器具有智能。那么,什么是数据驱动的方式呢?
谈谈《我的前半生》—— 顺便聊聊我的爱情观
Jul 18, 2017MORE出来混总是要还的,欠下的文章总还是要写的。一直想写一篇关于《我的前半生》这部电视剧的文章,无奈事情太多,所以拖到了今天。这部剧我没有全部看完,很多地方都是快进或者跳着看的(实在太忙),不过在现在这个时代,就算是跳着看、快进看的也能八九不离十地了解一部电视剧的剧情,这也大概就是我们这个时代各种五花八门的网络剧神奇的地方吧(偷笑中)。想到可以就着这个剧蹭蹭热点,聊聊自己的爱情观,以借此说明一下自己虽在一所男女比例10:1的恐怖学校里待了那么多年,但肯定真的不是基佬并且到现在还没有被掰弯这个事实,不禁会心一笑:嗯,就写它了。
和久浩介该不该跑路
Apr 17, 2017前两天读完了东野奎吾的《解忧杂货店》,其中在这本书里讲述的一个故事一直萦绕在我的心头,很多思绪在脑海中翻腾,如鲠在喉,为了讲清楚我接下来围绕这个故事表述的想法,先介绍一下这个故事的大体情节。