CarND Project 2 - 交通标志识别

目标

这个作业的目标是,训练出一个网络,给它32x32图片作为输入,它能判断出这个图片代表什么交通标识。

这个网络基于 LeNet, 所以本文会先讲述 DNN 和 CNN 的一些基础知识,再讨论作业的代码实现和训练过程。

DNN - Deep Neural Networks

单层网络 f=WX+b 只能进行线性转换,难以进行复杂的判断。通过堆积多层网络,添加非线性的元素(如activation layer),使得网络可以处理更负责的情况。

Source: Udacity

继续阅读“CarND Project 2 - 交通标志识别”

五台山日出计划

这是个没有计划的计划。

2017年12月29日,周五。我正准备撸起袖子建设祖国的时候,收到了领导同学的微信:明天去五台山吧! 我以“周末要好好学习”为由拒绝,无效,遂登录12306购买火车票。去程只剩下K603的无座票,回程还能买到一张K602的硬卧。

买好票,似乎妥了。谷歌一下“五台山”,嗯,清凉圣地。天气预报最低-10℃,3级西北风,山上可能会更猛。有点儿怂。

2017年12月30日,周六。睡到自然醒,等风吹散了雾霾,去优衣库和迪卡侬买装备。在优衣库买了人生第一条秋裤,在迪卡侬买了件冲锋衣,感觉妥了。
继续阅读“五台山日出计划”

BIND+GeoIP: 根据查询者IP的地理位置给出不同的DNS结果

为了能让访客访问到最快的服务器,可以在DNS上动手脚。有一些DNS服务商如dnspod可以根据DNS查询者的位置,给出相应的DNS解析结果。

自己搭建DNS服务器,也可以实现类似效果。在 BIND 9.10 中,提供了 GeoIP 的功能,利用 GeoIP 库查询访客IP所在区域,根据区域给出结果。参考:
https://kb.isc.org/article/AA-01149/0/Using-the-GeoIP-Features-in-BIND-9.10.html
继续阅读“BIND+GeoIP: 根据查询者IP的地理位置给出不同的DNS结果”

实践报告:港澳台同胞如何在大陆申请信用卡

香港澳门台湾同胞怎样在大陆申请信用卡?通常而言,在大陆生活有一张银联储蓄卡就足够了。不过遇到出国旅行/海淘等情况,还是需要用到Visa/MasterCard信用卡。

折腾了一番后,顺利申请了招商银行的信用卡,分享一下经验。
继续阅读“实践报告:港澳台同胞如何在大陆申请信用卡”

新加坡&新山4天闲逛


回家参加同学婚礼,顺便去东南亚转几天再回北京。买了周四凌晨4点广州到新加坡的机票,然后买了周日晚上10点从吉隆坡到北京的机票,中间可以逛4天。
行程安排: 广州->新加坡->新山->吉隆坡->北京

Day 1 广州->新加坡

广州看电影

约了某同学周三晚上在广州看电影,跟母亲大人吃完饭后,赶到城轨站,不出所料排长队买票。8点到达广州南站,40分钟地铁抵达岗顶站,看9点的《寻梦环游记》。电影院还不错,屏幕够大,人也不多。然而,坐后面那两位阿姨一直在剧透,多次转头给她们使了“我很不爽”的脸色,估计她们没看到。好吧,反正我是二刷。

3号线北延段到机场方向的末班车是23点,电影22:40结束,略赶。本来想约个1点的顺风车再刷一场电影,结果有个司机11点前就接单了。36元到机场,既然约上了就坐了吧。顺风车司机开了一辆7人的车,感觉就是把顺风车当出租车开的...

差不多12点的时候到达白云机场,出发层人不少,几乎没有座位。往下走一层到商店层,会有比较多的空位。不过作为都是有扶手的,躺着睡觉比较辛苦。为了度过在机场和飞机上的长夜,在7-11买了个39元的U型枕(估计名创优品只卖19元)和一瓶果汁,找了个长排的座椅躺了两小时。

值机柜台人不多,出入境人多,走完流程大概一个小时,在登机口找了个位置继续睡。

酷航还不错,虽然是廉价航空,不过飞机是波音787,座位也比较宽松。睡得还算舒服。

从广州起飞抵达新加坡的酷航787.

继续阅读“新加坡&新山4天闲逛”

MiniFlow - 自制玩具版 TensorFlow


神经网络由一个个神经元组成,简单而言,每个神经元会对输入进行一些简单运算,得到输出。而训练一个网络,则是调整网络中的参数,使得输出接近学习样本的期望输出。
比如,假设有一个网络只计算 y = w * x, 初始值 w=5。把 x=10 放进这个网络,会得到 y=50. 而我们预期 y=20. 通过训练这个网络,w 将会被调整为 w=2, 输出 y=20 则符合(接近)预期。

在实际应用中,一个网络会有不少参数,我们需要一个方法来调整这些参数。按我的理解,这个“调整参数”的过程就是机器学习的过程。

一个常见的神经网络,会由 Input layer, Hidden layer 和 output layer 组成。每层 layer 由众多神经元组成,Input/output layer 的神经元通常仅存储一个数值,本身不会进行运算。Hidden layer 的神经元则会对输入进行运算,将输出传给下一层。

By Glosser.ca - Own work, Derivative of File:Artificial neural network.svg, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=24913461

Udacity CarND-term1 Lesson 5 让我们自己去实现一个 Miniflow, 相当于一个玩具版的 Tensorflow. 通过实现 Miniflow, 可以体会到 Forward Pass 和 Backpropagation 的过程。
继续阅读“MiniFlow - 自制玩具版 TensorFlow”