最近写autoencoder的时候,遇到嵌套列表复制和reverse的问题。虽然list提供了copy方法,但涉及嵌套复制时就会出错。例如,
则y
和x
变为,
list.copy()对最外层的列表实现了复制,但内部的列表并没有。解决方法是用copy库中的deepcopy
方法,如下
此时的x
和y
为,
最近写autoencoder的时候,遇到嵌套列表复制和reverse的问题。虽然list提供了copy方法,但涉及嵌套复制时就会出错。例如,
则y
和x
变为,
list.copy()对最外层的列表实现了复制,但内部的列表并没有。解决方法是用copy库中的deepcopy
方法,如下
此时的x
和y
为,
趁着系统在升级,记录一下ubuntu recovery mode的网络恢复功能。我的系统是Ubuntu1610,因为不是LTS,官方已经不支持更新了,因此也无法通过正常的手段升级,曲线升级的方法参考这里。
在升级过程中,可能会出现重启后无法连接网络的问题,其中最严重的就是网卡驱动没有了。解决方法如下,
另一种情况是,DNS server出现问题,例如/etc/reconv.conf
文件为空,或者出现问题。解决方法是自己添加,默认的配置如下
也可以自己修改成如下形式,
除了网络恢复问题,多网卡的配置也是我关注的问题,这样可以一定程度上保证电脑处在联网状态。以我的系统为例,分别有两块网卡,有线网卡enp0s31f6
和无线网卡wlp4s0
,二者将连接到不同的网络,以有线网卡作为主要网卡,则配置如下,配置文件为/etc/network/interfaces
考虑到系统的稳定性,也因为懒,一直没升级Ubuntu 1610,也没有update。最近发现官方已经不支持1610了,而且直接把yakkety
的镜像给取消了。所以,即使是利用系统自带的update manager,也无法直接升级到1710,会出现如下的两类错误,
|
|
|
|
参考Askubuntu上的问题,有如下的解决方法,
这两天尝试将一个MATLAB工程转成Python,卡在一个bug上很久,最后发现是二者在矩阵索引上存在区别。这里我采用的是Python的NumPy库。
我们经常会通过一定的逻辑关系索引矩阵中的元素,并获取这些元素的位置信息,即indices。例如,
对应的python实现为,
这里可以看出,MATLAB提供一种一维索引,即将二维矩阵以列为先,行次之转为一维向量,输出的索引对应该一维向量中元素所在位置。(这种处理方法经常可以用于加速运算,缩短运行时间。)然而,NumPy的where方法根据矩阵的维数提供对应axis的索引,没有MATLAB这种一维索引的输出。
因此,在python中使用np.where进行矩阵元素索引时,要注意如下两点,
[1] numpy.where
简单记录一下利用python的SciPy库进行曲线拟合的方法,主要分为三个步骤,(1) 获取待拟合数据; (2) 定义函数描述待拟合曲线; (3)利用Scipy.optimize.curve_fit模块进行拟合。
获取数据的步骤不再赘述,这里从步骤二开始。以泊松分布为例,首先定义函数poisson_func
,
紧接着,根据待拟合的数据,对参数进行估计,如下
其中popt
为估计的参数,pcov
为对应的相关矩阵,其对角线为方差,可用于计算拟合参数的误差perr。
下图为我的测试样例,图中橙色三角为待拟合样本点,蓝色实线为拟合结果。
面试官负责的业务: 计算机视觉相关
应聘职位:机器学习,计算机视觉方向
首先自我介绍,介绍项目背景、贡献和成果。然后具体讨论技术,面试时间约45分钟。
Q1. 为什么做预训练+精调,用于无监督的样本有没有直接尝试做标记以后进行有监督训练?两个数据集有什么区别? 样本的筛选有标准吗?
Q2. 有没有尝试过引入其他类别的图像,做类似于迁移学习的工作?
Q3. 既然尝试了生成网络,VAE和GAN的相同点和区别在哪里? 既然说GAN不好训练,为什么呢?
Q4. 生成网络怎么衡量效果好呢? (云核心也有问过)
Q5. 深度学习中,常用的避免过拟合的tricks有哪些?
Q6. 正则化,L1和L2的区别是什么?
Q7. 激活函数的作用?可以用线性的激活函数吗?
Q1. 你涉及过的传统机器学习模型有哪些?
Q2. SVM的核技术是什么?怎么约束核函数的?
Q3. HMM的两个假设是什么?
参考《统计学习方法》
Q4. EM算法还有其他的类似的模型和应用吗?
Q5. AdaBoost,为什么有效果,原理是什么?
AdaBoost是用弱分类器的线性加权来代替强分类器。这里的强和弱指“可学习”性,即分类器通过学习以后,学习准确率相对于随机猜测的距离。AdaBoost通过迭代减少分类器在数据集上的分类误差率,从而体现出有效性。或者说Boost通过弱分类降低了整体估计的误差,或者说方差,使得置信区间更小。还有一种理解是,Boost方法提高了模型的泛化能力,从而提升了分类准确率。
Q1. 既然做过分类,那么传统图像处理中有哪些特征?
同样的,不要给自己挖坑。。。用过哪些就说,比如我说的是GLCM, Gabor。HoG和SIFT这种很常见,也需要巩固的。
Q2. 为什么用Gabor的效果就好呢?
我的回答是效果好。。。其实我理解的是特征提取的目的就是找到可分性高的特征。所以要考虑怎么衡量可分性。
也许是Ubuntu16.04以后版本,或者是google-chrome的版本问题,会出现从chrome以外的链接打开chrome后只显示空白标签的情形。
其解决方法是给google-chrome.desktop
配置文件的Exec
提供%U
的值,步骤如下
Nothing to tell, ‘cause I am out of work for a week, lol. A warm greeting from my hometown that happy Chinese new year. Also a celebrationg for my 400th contribution to my github.
Wish everything well in the new year.
写之前吐个槽,连续的熬夜加酗酒,要跪。。。睡前写个hexo相关的教程,基于hexo如何撰写和发布一篇博客。主要分为两步,(1) 掌握markdown语法和git相关指令; (2) 利用hexo命令初始和编译文章。
Markdown的基本语法可以参考这篇文章,在博客中主要会用到三种语法结构,
[name](address)
;
注意感叹号。而git相关的指令,用于上传图片,作为图床。主要指令有,
Hexo 的安装和配置参考这篇文章,这里只介绍新文章的生成过程。
新建一篇名为xxx的文章,此时在blog/source/_posts路径下会生成名为’xxx.md’的文件
|
|
编写文章
|
|
或者可以利用markdown相关的编辑器,如haroopad,这是一款非常好用的编辑器。
|
|
Enjoy it~~
写之前吐个槽,我又把tf.nn.softmax_cross_entropy_with_logits
的参数赋反了,折腾了一晚上。。。这篇文章主要讨论TensorFlow中训练指定变量的问题。这篇博客给了个非常巧妙的方法,简单记录一下。
在tf.trainiable_variables
里存储了可以用于训练的变量,利用如下方法可以打印出它们的信息,
假设有两个loss function,分别对应网络中不同区域的变量,为了实现梯度的有效传递,可以利用如下方法,
We are in the same story.
Astronomer? Software engineer