
机器学习
文章平均质量分 60
GZKPeng
深度学习有四境:调参炼丹境,理论创新陆地神仙境,张量运算剑仙境,无所不通无上剑仙境。
人若无名,便可勤奋练剑
展开
-
讨论一下深度学习的境界,欢迎大家在评论中留言交流
学习深度学习也有三四年的时间了,想回顾回顾历程,给深度学习境界划分一下,本人不成熟意见如下:深度学习有四境:调参炼丹境,理论创新陆地神仙境,张量运算剑仙境,无所不通无上剑仙境。欢迎各位大佬指正和讨论。...原创 2019-12-04 11:36:42 · 290 阅读 · 1 评论 -
python3.5 报错: UnicodeEncodeError:'gbk' can't encode character '\u22f1' in position 211
python3.5 的一个pytorch程序中有打印张量的语句,原先代码还可以运行,几天以后忽然报错: UnicodeEncodeError:’gbk’ can’t encode character ‘\u22f1’ in position 211:illegal multibyte sequence解决方法: win_unicode_console.enable()...原创 2018-07-03 15:12:51 · 472 阅读 · 0 评论 -
Pytorch的Dataloader报错:TypeError: batch must contain tensors, numbers, dicts or lists
具体报错: TypeError: batch must contain tensors, numbers, dicts or lists; found dataloader=torch.utils.data.DataLoader(dataset,batch_size=1,shuffle=True)表面上看这个代码没有问题,实际上问题出在了dataloader机制的要求上,dataload...原创 2018-07-17 12:05:21 · 18243 阅读 · 4 评论 -
深度学习 -> 强化学习 ->迁移学习(杨强老师报告)
深度学习的局限表达能力的限制。因为一个模型毕竟是一种现实的反映,等于是现实的镜像,它能够描述现实的能力越强就越准确,而机器学习都是用变量来描述世界的,它的变量数是有限的,深度学习的深度也是有限的。另外它对数据的需求量随着模型的增大而增大,但现实中有那么多高质量数据的情况还不多。所以一方面是数据量,一方面是数据里面的变量、数据的复杂度,深度学习来描述数据的复杂度还不够复杂。缺乏反馈机制。目前...转载 2018-07-12 11:01:36 · 1995 阅读 · 0 评论 -
pytorch数据类型报错解决方案:
pytorch报错: RuntimeError: Expected object of type Variable[torch.LongTensor] but found type Variable[torch.cuda.ByteTensor] for argument #1 ‘argument1’解决方法:pytorch框架在存储labels时,采用LongTensor来存储,所以在一...原创 2018-07-20 14:54:51 · 2405 阅读 · 0 评论 -
迁移学习总览
后续的课题需要一些迁移学习的知识,所以在此先对迁移学习做一个宏观认识:原创 2018-08-06 16:41:21 · 401 阅读 · 0 评论 -
Keras预训练模型下载后保存路径
ResNet50等keras预训练权重文件的下载:https://github.com/fchollet/deep-learning-models/releases/本地存放目录: Linux下是放在“~/.keras/models/”中 Win下则放在Python的“settings/.keras/models/”中 在anaconda on win中是:D:\Anacond...原创 2018-08-11 20:21:12 · 8381 阅读 · 3 评论 -
Pytorch画模型图
pytorch中好像没有个api让我们直观的看到模型的样子。但是有网友提供了一段代码,可以把模型画出来,对我来说简直就是如有神助啊。话不多说,上代码吧。import torchfrom torch.autograd import Variableimport torch.nn as nnfrom graphviz import Digraphclass CNN(nn.Module)...转载 2018-08-21 15:56:33 · 4252 阅读 · 0 评论 -
Pytorch报错:Assertionerror nn criterions don't compute the gradient w.r.t. targets
引发错误目前看来有两种情况: 1、应该是在损失函数中,模型输出为首个实参,ground_truth为第二个实参,写反了会出现这种情况loss = criterion(output,label) #正确loss = criterion(label,output) #错误2、第二种情况,ground_truth需要与模型的某些参数运算后得到模型需要的标签,然后引发错误:#错误写...原创 2018-08-25 15:47:09 · 1443 阅读 · 0 评论 -
Pytorch 0.3 模型与重新加载持久化后同参数模型,最终表现不一致问题
最近发现了一个问题,训练好的模型,跑测试集表现很好,于是将模型参数持久化保存下来(注意,并非全部模型)。重新加载模型参数,跑测试集,发现结果差异很大,而且重新加载的模型表现非常差。 但是输出两次的模型的参数,比对发现一模一样。 持久化代码:def save_network(network, epoch_label): save_filename = 'net_%s.pth'% ...原创 2018-09-02 20:31:42 · 2820 阅读 · 0 评论 -
民科解释蒙特卡洛法
先看看wiki的解释:蒙特卡罗方法(英语:Monte Carlo method),也称统计模拟方法,是1940年代中期由于科学技术的发展和电子计算机的发明,而提出的一种以概率统计理论为指导的数值计算方法。是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。通常蒙特卡罗方法可以粗略地分成两类:一类是所求解的问题本身具有内在的随机性,借助计算机的运算能力可以直接模拟这种随机的过程。另一种...原创 2019-02-28 15:20:13 · 657 阅读 · 0 评论 -
深度学习常用优化算法
最早整理了一些深度学习的基础知识给实验室的师弟师妹看,后来想想还是写个博客大家一起看吧。批量梯度下降法(Batch Gradient Descent)在整个数据集上(求出损失函数 J(θ 并)对每个参数 θ 求目标函数 J(θ) 的偏导数:在该方法中,每次更新我们都需要在整个数据集上求出所有的偏导数。因此批量梯度下降法的速度会比较慢,甚至对于较大的、内存无法容纳的数据集,该方法都无法被使用...原创 2020-09-09 15:10:34 · 479 阅读 · 0 评论 -
pytorch 0.4错误总结
0.4.0 发布说明错误修复:修复多进程下的内存泄漏问题 PR #5585 使用多线程版本 MKL 替代顺序版 MKL ,在 CPU 上带来10%的速度提升 PR #6416 重新添加 Compute Capability 5.0 显卡的支持 新功能:在编译中加入 MAGMA 添加 CUDA 9.1 build 提供 Wheels 包 支持新的cpp拓展 PR #5548 ...原创 2018-06-26 13:34:32 · 8598 阅读 · 2 评论 -
Windows用命令查看nvidia的GPU
nvidia-smicmd进入目录输入命令即可:原创 2018-06-09 09:42:25 · 35276 阅读 · 3 评论 -
pytorch 0.4 改动: cannot resize variables that require grad
在pytorch0.3中做过一些关于张量求梯度的工作,目的是扩展一下pytorch的module,今天升级pytorch0.4,发现原先的代码不可用,报错如下: RuntimeError: cannot resize variables that require grad在pytorch 0.3中,允许对求梯度的变量改变size,改变size后,再次求偏导,梯度置0。实际上这是一个逻辑上的b...原创 2018-06-13 18:43:36 · 4242 阅读 · 3 评论 -
tensorflow-cifar10示例报错
1:ArgumentError: argument --train_dir: conflicting option string: --train_dir解决方法,从新开一个console2:ArgumentError: argument --batch_size: conflicting option string: --batch_size因为Cifar10.py 有一段代码:tf.app.f...原创 2018-03-13 21:14:49 · 1252 阅读 · 0 评论 -
关于应用gpu训练神经网络的注意事项
对于GPU来说,一定要注意的是,要分别在两个GPU上,或者不同时的在一个GPU上运行train和evaluation的部分,否则限于GPU擅长迭代而不擅长逻辑的特性,会发生OOM(out of memory)...原创 2018-03-31 10:14:57 · 1868 阅读 · 0 评论 -
更新tensorflow后应用tensorboard报错
更新tensorflow后,出现tensorboard 不可用情况(tensorflow-cpu 1.4 ->tensorflow-gpu 1.7)尝试了更新tensorboard 仍然不可用,事故情况:运行tensorboard.exe报错并且闪退,在控制台运行tensorboard命令,报错如下:多方查证,在国内网站没找到有前车之鉴,于是发布问题到tensorflow ...原创 2019-05-07 09:05:24 · 1817 阅读 · 0 评论 -
CUHK03和Market1501计算CMC和mAP的方法
Cumulative Matching Characteristics (CMC) curves 是目前行人重识别领域最流行的性能评估方法。考虑一个简单的 single-gallery-shot 情形,每个数据集中的ID(gallery ID)只有一个实例. 对于每一次的识别(query), 算法将根据 要查询的图像(query) 到所有gallery samples的距离从小到大排序,CMC t...原创 2018-04-17 08:58:00 · 4676 阅读 · 4 评论 -
H5py报错:OSError: Can't read data (inflate() failed)
转载请注明出处事故描述: 我原先谢了个程序提取.mat文件的数据。以前用没问题,结果今天我准备再提取一次的时候报错如下:Traceback (most recent call last): File "create_dataset.py", line 123, in <module> create_dataset(args.mat_file_path) File "...原创 2018-04-19 20:12:58 · 7632 阅读 · 0 评论 -
softmax、softmax损失函数;交叉熵、交叉熵损失函数
原创 2018-05-01 10:30:08 · 3236 阅读 · 0 评论 -
epoch,batch,iterator含义
batchsize:批大小,比如SGD中的BP一次就是用的一批的数据iterator:迭代次数,1个iterator相当于用一个batch训练一次epoch:训练集中全部的数据被用过一次,叫一个epoch举个例子,在不考虑每个batch之间发生样本交叉的情况下,假设有1000个样本,batchsize是10,那么用过全部的样本训练模型,需要1个epoch,100次iterator...原创 2018-04-19 20:52:39 · 1643 阅读 · 0 评论 -
Keras 报错:StopIterator
报错:Traceback (most recent call last): File "E:\Anaconda\lib\site-packages\keras\utils\data_utils.py", line 555, in get inputs = self.queue.get(block=True).get() File "E:\Anaconda\lib\multip...原创 2018-04-20 11:26:58 · 4519 阅读 · 18 评论 -
One-Hot Encoding 独热编码
机器学习 数据预处理之独热编码(One-Hot Encoding)问题由来在很多机器学习任务中,特征并不总是连续值,而有可能是离散值。例如,考虑一下的三个特征:["male", "female"]["from Europe", "from US", "from Asia"]["uses Firefox", "uses Chrome", "uses Safari转载 2018-04-21 11:32:22 · 411 阅读 · 0 评论 -
从拉普拉斯讲到谱聚类
从拉普拉斯矩阵说到谱聚类0 引言 11月1日上午,机器学习班第7次课,邹博讲聚类(PPT),其中的谱聚类引起了自己的兴趣,他从最基本的概念:单位向量、两个向量的正交、方阵的特征值和特征向量,讲到相似度图、拉普拉斯矩阵,最后讲谱聚类的目标函数和其算法流程。 课后自己又琢磨了番谱聚类跟拉普拉斯矩阵,打算写篇博客记录学习心得, 若有不足或建议,欢迎随时不吝指出,thanks。1 矩阵基础 ...转载 2018-05-19 20:42:34 · 346 阅读 · 1 评论 -
转载:机器学习中的范数规则化之(一)L0、L1与L2范数
监督机器学习问题无非就是“minimizeyour error while regularizing your parameters”,也就是在规则化参数的同时最小化误差。最小化误差是为了让我们的模型拟合我们的训练数据,而规则化参数是防止我们的模型过分拟合我们的训练数据。多么简约的哲学啊!因为参数太多,会导致我们的模型复杂度上升,容易过拟合,也就是我们的训练误差会很小。但训练误差小并不是我们的最终...转载 2018-05-14 11:08:56 · 287 阅读 · 0 评论 -
转载:机器学习中的范数规则化之(二)核范数与规则项参数选择
三、核范数 核范数||W||*是指矩阵奇异值的和,英文称呼叫Nuclear Norm。这个相对于上面火热的L1和L2来说,可能大家就会陌生点。那它是干嘛用的呢?霸气登场:约束Low-Rank(低秩)。OK,OK,那我们得知道Low-Rank是啥?用来干啥的? 我们先来回忆下线性代数里面“秩”到底是啥?举个简单的例子吧: 对上面的线性方程组,第一个方程和第二个方程...转载 2018-05-14 11:10:33 · 242 阅读 · 0 评论 -
python中的@,以及@在tensorflow中的作用
====转载请注明出处====Python中的@:援引廖雪峰老师对装饰器的解释以及一些自己对装饰器的理解:python中在代码运行期间动态增加功能的方式,称之为“装饰器”(Decorator)。@是装饰器的语法。装饰器是在函数调用之上的修饰,这些修饰仅是当声明一个函数或者方法的时候,才会应用的额外调用。 我们可以用装饰器来增加计时逻辑来检测性能,或者引入日志等等。函数也是一个对象,而且函数对象可以...原创 2018-05-25 18:37:45 · 7319 阅读 · 1 评论 -
数据预处理的几个方法:白化、去均值、归一化、PCA
以上转载自:http://ufldl.stanford.edu/wiki/index.php/%E7%99%BD%E5%8C%96 假定数据表示成矩阵为X,其中我们假定X是[N*D]维矩阵(N是样本数据量,D为单张图片的数据向量长度)。 去均值,这是最常见的图片数据预处理,简单说来,它做的事情就是,对待训练的每一张图片的特征,都减去全部训练集图片的特征均值,这么做的直观意义就是,我们把输入数据原创 2017-12-01 11:25:03 · 34514 阅读 · 3 评论