- 博客(33)
- 资源 (6)
- 收藏
- 关注
原创 TensorFlow的Session工作原理
Session是Graph和执行者之间的媒介,Session.run()实际上将graph、fetches、feed_dict序列化到字节数组中,并调用tf_session.TF_Run(参见/usr/local/lib/python2.7/site-packages/tensorflow/python/client/session.py)而这里的tf_session.TF_Run实际上调用了动态链
2017-09-07 10:21:41 990
原创 Udacity Deep Learning课程作业(六)
来到课程最后一次小作业,训练完word2vec模型后,作业六基于Text8.zip语料训练一个LSTM模型,用perplexity评价训练得到语言模型的质量,越低越好。LSTMProblem 1num_nodes = 64graph = tf.Graph()with graph.as_default(): # Parameters: # Input gate: input, prev
2017-08-22 11:26:51 885
原创 Udacity Deep Learning课程作业(五)
作业五是根据Text8的语料库训练一个语言模型word2vec,得到语料库中每个词的嵌入式表达(向量)。Mikolov提出的word2vec包括skip-gram和CBOW两种模型,前者是根据给定词预测其周围的词,后者是根据周围的词预测中间的词。Mikolov最大的贡献是采用negative sampling的方法极大提升神经网络模型的计算效率。官方的作业ipynb给出了skip-gram的实现,要
2017-08-21 20:17:26 1065
原创 Udacity Deep Learning课程作业(四)
第四章作业主要是关于卷积神经网络的练习,涉及到tf.nn.conv2d、tf.nn.max_pooling等的使用。相关API的用法tf.nn.conv2dtf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=None, name=None): - input和filter都是4D的tensor类型,计算两者的2D卷积,inp
2017-08-20 23:38:43 882
原创 Udacity Deep Learning课程作业(三)
Problem 1Linear Regression with Regularizationbatch_size = 128graph = tf.Graph()with graph.as_default(): # Input data. For the training data, we use a placeholder that will be fed # at run time
2017-08-19 23:05:32 940
原创 Udacity Deep Learning课程作业(二)
第二次作业比较简单,实现一个隐含层1024个节点的三层神经网络,选用ReLU作为激活函数,实现作业一中的字母图片分类。实现代码如下,主要是实现computation(dataset, weights, biases)函数,返回logits取代原来的线性回归模型。hidden_nodes = 1024batch_size = 128def computation(dataset, weights,
2017-08-18 22:36:07 570
原创 Udacity Deep Learning课程作业(一)
Udacity的深度学习是Google开设的一门基于TensorFlow完成任务的在线课程,课程短小精悍,包括4章(入门ML/DL,DNN,CNN,RNN)、6个小作业(以ipynb的形式,十分方便友好)和1个大作业(开发实时摄像头应用)。有ML/DL基础的同学,视频很快可以过完,因此课程精华在于其实战项目,很有意思。作为G家的课程,算是TensorFlow比较权威的学习tutorial了。课程链接
2017-08-17 21:49:22 2117
原创 PyTorch的Tensors和Autograd
PyTorch官网提供了比较多快速入门的tutorial,http://pytorch.org/tutorials/。最经典的是Deep Learning with PyTorch: A 60 Minute Blitz
2017-05-06 23:43:53 657
原创 PyTorch源码安装小记
Torch是Facebook AIR去年6月开源的深度学习框架,向G家的Tensorflow看起,基于Lua开发,可以充分利用GPU进行计算加速。PyTorch是FAIR今年1月发布的,在原来基础上提供python接口支持?也是正面刚支持py的tf吧。本来安装PyTorch比较简单,按照官网,装完anaconda后一句conda命令就可以安装:然而最后还是倒在墙下。没有办法,只能选择源码编译安装了:
2017-05-05 10:36:59 21270 11
原创 《深度探索C++对象模型》(五)
5. The Semantics of Construction, Destruction and Copy讨论如何支持class模型,object的生命周期
2017-04-22 12:08:51 845
原创 《深度探索C++对象模型》读书笔记(四)
4. The Semantics of FunctionC++支持三中类型的member function:static、nonstatic和virtual,每一种类型被调用的方式都不相同。对于static成员函数,不能直接读写nonstatic数据,也不能声明为const。4.1 成员函数的三种调用方式非静态成员函数虚成员函数静态成员函数4.2 虚成员函数A. 单继承下的虚函数B. 多继承下的虚函
2017-04-21 17:57:19 499
原创 《深度探索C++对象模型》读书笔记(三)
3. The Semantics of Data这一章主要讨论类的数据成员的内存模型,涉及的干货比较多。
2017-04-20 23:53:28 460
原创 《深度探索C++对象模型》读书笔记(二)
第二章讨论Constructor构造函数的工作原理:主要是默认构造函数和复制构造函数何时被编译器生成,给程序效率带来的意义。其实觉得semantics这个词用得过于抽象了,而且贯穿全书,在书里翻译为“语意学”,应该指的是编译器对C++语法特性的语义分析吧。这一章读起来已经有点绕了,译者侯捷已经尽力复原作者的意思,但读起来并不连贯,有些地方读不通。
2017-04-19 23:40:38 388
原创 《深度探索C++对象模型》读书笔记(一)
Lippman早期在贝尔实验室,和C++发明者Bjarne Stroustrup设计了全世界第一套C++编译器cfront,还著有经典的C++入门书[Ensential C++](https://book.douban.com/subject/24868427/)和[C++ Primer](https://book.douban.com/subject/25708312/)。
2017-04-18 22:43:24 741
原创 《算法导论》Dijkstra算法实现
所谓单源最短路径(Single-Source-Shortest-Path)问题,就是求解从某个节点出发,到其他节点的最短距离。 求解该问题的常用算法有Bellman-Ford和Dijkstra,前者适用于一般情况如负权值边,后者适用于非负权值边。参考《算法导论》第24章-单源最短路径的方法: 1.设置数组d存储每个节点到源节点的距离,维护一个提取最小d值的优先队列Q,Q初始化时是G的所有节点的集
2017-04-18 22:41:12 1100
原创 《算法导论》BFS和DFS实现
广度优先搜索BFS可以用在最小生成树算法(Prim)和单源最短路径算法(Dijkstra),借助优先队列存放同一深度的待访问结点深度优先搜索DFS,本质是回溯算法,“一条路走到头再回来”参考《算法导论》第六部分图算法的第22章-图的基本算法:图G(V, E)用邻接矩阵G表示用三种颜色标记顶点的状态,记录搜索轨迹(顶点未发现“white”,发现为“gray”,遍历完为“black”)用数组c
2017-04-18 22:38:34 922
原创 《算法导论》二叉查找树的实现
二叉查找树(Binary Search Tree,BST)也是一种支持多种动态集合操作(查找、最大最小值、插入、删除)的数据结构,基本操作的时间和树的高度成正比。基于BST的变型如红黑树、平衡AVL树,可以保证各个基本操作的最坏情况下依然能保证好性能。根据定义,二叉查找树的根节点值大于或等于其左子树的根节点值,小于或等于右子树的根节点值。因此,中序遍历BST能得到升序排好序的所有关键字。(参照排序的
2017-04-18 22:27:04 422
原创 《算法导论》散列表
散列表(Hash Table)是实现字典操作(查找、插入、删除)的有效数据结构,具有很高的查找效率。一定情况下查找元素的期望时间是O(1),优于链表(O(n)),和直接寻址的数组(查找也是O(1))相当。但当实际存储的关键字数比可能的关键字总数小的时候,散列表比数组有效。直接寻址 vs 散列技术一些记号:关键字的全域U实际存储的关键字集合K(个数n)散列映射的槽数m关键字k散列函数h直接
2017-04-18 22:26:13 497
原创 《算法导论》二叉树遍历的递归&非递归实现
二叉树常见的遍历方法有: - 前序遍历(preorder):“根左右” - 中序遍历(inorder):“左根右” - 后序遍历(postorder):“左右根” - 层次遍历(level):逐层从左到右访问节点前三种遍历方法,属于树的深度优先搜索DFS。层次遍历方法则属于广度优先搜索BFS。前三种对应于数学上的前缀、中缀、后缀表达式(波兰/逆波兰表示),方便计算机来计算带括号区分运算优先级
2017-04-18 22:25:14 685
原创 《算法导论》线性时间O(n)排序
基于元素间比较的排序算法中,快速排序、归并排序、堆排序是常见的时间代价为O(nlogn)的排序算法,它们都是《算法导论》第8章给出证明,“对于n个元素的输入序列,任何比较排序在最坏情况下都要用Big Omega(nlogn)次比较进行排序”。因此,归并排序和堆排序都是渐近最优的(下界为nlogn),快速排序最坏情况时间代价为O(n^2)。
2017-04-18 22:23:19 800
原创 《算法导论》堆排序和优先队列
堆是一种树形结构,通常基于完全二叉树实现最大堆或最小堆。堆排序最坏的时间复杂度为O(nlogn),和归并排序一样;又和插入排序一样,属于原地排序;堆排序综合了两种算法的优势。堆结构可以用来实现海量数据的Top-N排序,也可以用来实现优先队列(Priority Queue)。
2017-04-18 22:22:06 541
原创 《算法导论》排序算法的分析和实现
排序算法分析常见(内)排序算法分类: - 比较排序 - 插入排序/选择排序/冒泡排序 - 归并排序 - 快速排序 - 堆排序 - Shell排序
2017-04-18 22:20:20 470
转载 Ubuntu命令介绍——echo
echo是一个非常简单、直接的linux命令: *将argument送出至标准输出(STDOUT),通常就是在显示器(monitor)上输出。 为了更好的理解,不如先让我们跑一下 echo 命令好了: $ echo $ 你会发现只有一个空白行,然后又回到 shell prompt 上了。这是因为 echo 在预设上,在显示完argument之后,还会送出一个换
2014-08-25 13:14:26 14396
原创 ubuntu命令 - 关闭独立显卡
代码:sudo suecho IGD > /sys/kernel/debug/vgaswitcheroo/switchecho OFF > /sys/kernel/debug/vgaswitcheroo/switch第一句是切换到集成显卡;第二句是关闭没有连接的显卡。如果这时你的独显指示灯熄灭,那么恭喜!你已经成功了一大半了。然后把这两句加到/etc/rc.local里
2014-08-25 13:09:04 1959
转载 ubuntu目录结构
关于Ubuntu的目录结构,百度时看到有介绍,做一下笔记。/:根目录,一般根目录下只存放目录,不要存放文件,/etc、/bin、/dev、/lib、/sbin应该和根目录放置在一个分区中/bin:/usr/bin:可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等。/boot:放置linux系统启动时用到的一些文件。/boot/vmlinuz为linux的
2014-08-25 12:09:27 471
原创 Ubuntu12.04安装Qt4.8集成开发环境(QtCreator)
Terminal:draco@draco-Inspiron-N4050:~$ sudo apt-get install qt4-dev-tools qt4-doc qt4-qtconfig qt4-demos qt4-designer“◆qt4-dev-tools 中包括了Qt Assistant,Qt Linguist,Qt Creator◆qt4-doc 这个是帮助文档◆
2014-08-15 12:30:10 855
转载 机器学习问题方法总结
大类名称关键词有监督分类决策树信息增益分类回归树Gini指数,Χ2统计量,剪枝朴素贝叶斯非参数估计,贝叶斯估计线性判别分析Fishre判别,特征向量求解K最邻近相似度度量:欧氏距离、街区距离、编辑距离、向
2014-08-14 21:53:13 587
转载 程序员初学机器学习的四种方式
学习机器学习有很多方法,大多数人选择从理论开始。如果你是个程序员,那么你已经掌握了把问题拆分成相应组成部分及设计小项目原型的能力,这些能力能帮助你学习新的技术、类库和方法。这些对任何一个职业程序员来说都是重要的能力,现在它们也能用在初学机器学习上。要想有效地学习机器学习你必须学习相关理论,但是你可以利用你的兴趣及对知识的渴望,来激励你从实际例子学起,然后再步入对算法的数学理解。通过本文
2014-08-14 19:03:25 603
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人