虽说开源大法好,但是在我的DELL 游匣7559笔记本上安装Ubuntu+Windows双系统可是耗费了我不少精力。这篇博客是我参考这篇文章成功安装Ubuntu16.04和CUDA的记录。感谢上文作者的记录,我才能够最终解决这个问题。基本流程和上文作者相同,只不过没有安装后续的bumblee等工具,所以本文并不是原创,而更多是翻译和备份。
Effective CPP 阅读 - Chapter 8 定制new和delete
手动管理内存,这既是C++的优点,也是C++中很容易出问题的地方。本章主要给出分配内存和归还时候的注意事项,主角是operator new
和operator delete
,配角是new_handler,它在当operator new
无法满足客户内存需求时候被调用。
另外,operator new
和operator delete
只用于分配单一对象内存。对于数组,应使用operator new[]
,并通过operator delete[]
归还。除非特别指定,本章中的各项既适用于单一operator new
,也适用于operator new[]
。
最后,STL中容器使用的堆内存是由容器拥有的分配器对象(allocator objects)来管理的。本章不讨论。
Neural Network for Machine Learning - Lecture 06 神经网络的“调教”方法
第六周的课程主要讲解了用于神经网络训练的梯度下降方法,首先对比了SGD,full batch GD和mini batch SGD方法,然后给出了几个用于神经网络训练的trick,主要包括输入数据预处理(零均值,单位方差以及PCA解耦),学习率的自适应调节以及网络权重的初始化方法(可以参考各大框架中实现的Xavier初始化方法等)。这篇文章主要记录了后续讲解的几种GD变种方法,如何合理利用梯度信息达到更好的训练效果。由于Hinton这门课确实时间已经很久了,所以文章末尾会结合一篇不错的总结性质的博客和对应的论文以及PyTorch中的相关代码,对目前流行的梯度下降方法做个总结。
下图即来自上面的这篇博客。
Effective CPP 阅读 - Chapter 7 模板与泛型编程
Effective CPP 阅读 - Chapter 6 继承与面向对象设计
C++中允许多重继承,并且可以指定继承是否是public or private等。成员函数也可以是虚函数或者非虚函数。如何在OOP这一C++联邦中的重要一员的规则下,写出易于拓展,易于维护且高效的代码?
真•面向对象编程!
Silver RL课程 - DP Planning
上讲中介绍了MDP这一基本概念。之后的lecture以此出发,介绍不同情况下的最优策略求解方法。本节假设我们对MDP过程的所有参数都是已知的,这时候问题较为简单,可以直接得到确定的解。这种问题叫做planning问题,求解方法是动态规划。
Silver RL课程 - MDP
Silver在英国UCL讲授强化学习的slide总结。背景介绍部分略去不表,第一篇首先介绍强化学习中重要的数学基础-马尔科夫决策过程(MDP)。
Neural Network for Machine Learning - Lecture 02
这是第二周的课程内容,主要介绍了几种神经网络的分类,详细地介绍了感知机这一最简单的模型。
Ubuntu Cannot Mount exfat格式硬盘的解决办法
我的移动硬盘为东芝1TB容量,为了能够在Windows和MacOS下使用,我将其格式化为exfat格式。然而我发现这样一来,在Ubuntu14.04下不能挂载。虽然可见盘符,但是却提示unable to mount
。这篇文章是对解决办法的记录。
Neural Network for Machine Learning - Lecture 01
Hinton 在 Coursera 课程“Neural Network for Machine Learning”新开了一个班次。对课程内容做一总结。课程内容也许已经跟不上最近DL的发展,不过还是有很多的好东西。