摘要: 本文为微信公众号[深度学习大讲堂]特约稿,转载请注明出处 虚拟框架杀入 从发现问题到解决问题 半年前的这时候,暑假,我在SIAT MMLAB实习。 看着同事一会儿跑Torch,一会儿跑MXNet,一会儿跑Theano。 SIAT的服务器一般是不给sudo权限的,我看着同事挣扎在编译这一坨框架的海洋中 阅读全文
posted @ 2016-12-23 10:21 Physcal 阅读(7651) 评论(5) 推荐(3) 编辑
摘要: 本文为微信公众号[深度学习大讲堂]特约稿,转载请注明出处 Reference:Culture vs Local Minima [Bengio.2012] 关于作者 首次看到Bengio教授这篇论文是在[对话机器学习大神Yoshua Bengio(下)] 这篇论文是提问时候偶然提到的,按照Questi 阅读全文
posted @ 2016-06-27 22:51 Physcal 阅读(4208) 评论(1) 推荐(2) 编辑
摘要: Softmax是啥? Hopfield网络的能量观点 1982年的Hopfiled网络首次将统计物理学的能量观点引入到神经网络中, 将神经网络的全局最小值求解,近似认为是求解热力学系统的能量最低点(最稳定点)。 为此,特地为神经网络定义了神经网络能量函数$E(x|Label)$,其中$x$为输入。 阅读全文
posted @ 2016-06-16 13:53 Physcal 阅读(8084) 评论(0) 推荐(0) 编辑
摘要: 消费者 回忆:生产者提供产品的接口 在第捌章,IO系统(二)中,生产者DataReader提供了外部消费接口: class DataReader { public: ......... BlockingQueue<Datum*>& free() const { return ptr_pair->fr 阅读全文
posted @ 2016-03-26 13:13 Physcal 阅读(6529) 评论(10) 推荐(2) 编辑
摘要: 数据变形 IO(二)中,我们已经将原始数据缓冲至Datum,Datum又存入了生产者缓冲区,不过,这离消费,还早得很呢。 在消费(使用)之前,最重要的一步,就是数据变形。 ImageNet ImageNet提供的数据相当Raw,不仅图像尺寸不一,ROI焦点内容比例也不一,如图: [Krizhevsk 阅读全文
posted @ 2016-03-24 16:06 Physcal 阅读(6356) 评论(0) 推荐(0) 编辑
摘要: 听说Google出了TensorFlow,那么Caffe应该叫什么? ——BlobFlow 神经网络时代的传播数据结构 我的代码 我最早手写神经网络的时候,Flow结构是这样的: struct Data { vector<double> feature; int y; Data(vector<dou 阅读全文
posted @ 2016-03-19 11:38 Physcal 阅读(6369) 评论(0) 推荐(0) 编辑
摘要: 生产者 双缓冲组与信号量机制 在第陆章中提到了,如何模拟,以及取代根本不存的Q.full()函数。 其本质是:除了为生产者提供一个成品缓冲队列,还提供一个零件缓冲队列。 当我们从外部给定了固定容量的零件之后,生产者的产能就受到了限制。 由两个阻塞队列组成的QueuePair,并不是Caffe的独创, 阅读全文
posted @ 2016-03-12 20:59 Physcal 阅读(4058) 评论(8) 推荐(0) 编辑
摘要: 你说你会关系数据库?你说你会Hadoop? 忘掉它们吧,我们既不需要网络支持,也不需要复杂关系模式,只要读写够快就行。 ——论数据存储的本质 关系数据库横行已久,似乎大家已经忘了早些年那些简陋的数据存储模式。 在ACM选手中,流传着“手艹数据库”的说法,即利用map<string,type>或者ma 阅读全文
posted @ 2016-03-12 19:50 Physcal 阅读(5677) 评论(0) 推荐(0) 编辑
摘要: 你说你学过操作系统这门课?写个无Bug的生产者和消费者模型试试! ——你真的学好了操作系统这门课嘛? 在第壹章,展示过这样图: 其中,左半部分构成了新版Caffe最恼人、最庞大的IO系统。 也是历来最不重视的一部分。 第伍章又对左半部分的独立性进行了分析,我是这么描述到: Datum和Blob(Ba 阅读全文
posted @ 2016-03-06 18:03 Physcal 阅读(5639) 评论(1) 推荐(1) 编辑
摘要: 你为Class外访问private对象而苦恼嘛?你为设计序列化格式而头疼嘛? ——欢迎体验Google Protocol Buffer 面向对象之封装性 历史遗留问题 面向对象中最矛盾的一个特性,就是“封装性”。 在上古时期,大牛们无聊地设计了三种访问域: public、private、protec 阅读全文
posted @ 2016-03-04 19:30 Physcal 阅读(5220) 评论(2) 推荐(0) 编辑