
机器学习
Kenn7
GitHub:KennCoder7
展开
-
MLP,CNN,RNN前向传播与反向传播推导和Python实现
Python实现:https://github.com/KennCoder7/DNN-numpy原创 2020-10-15 14:27:21 · 810 阅读 · 0 评论 -
MNIST的均值和方差(0.1307,), (0.3081,)是怎么计算出来的?
不多说 上代码解释self.train_x_set = self.train_x_set / 255.mean = 0std = 0for x in self.train_x_set: mean += np.mean(x[0, :, :])mean /= len(self.train_x_set)self.train_x_set -= meanfor x in self.train_x_set: std += np.mean(np.square(x[0, :, :]).fl原创 2020-10-12 22:24:08 · 1254 阅读 · 1 评论 -
神经网络各种初始化方法(normal,uniform,xavier)的numpy实现以及表现对比
Numpy实现表现对比Mnist数据集 input_feature_dim=784(28*28)MLP-64-64-softmax网络SGD优化方法 batch_size=128max_epoch=100 lr=0.05 zeros ones normal xavier_Glorot xavier_normal uniform ...原创 2020-10-01 17:21:00 · 4213 阅读 · 0 评论 -
Tensorflow中实现反卷积过程(de-convolution/convolution transpose)
卷积神经网络是深度学习中一个很流行的网络模型,它的原理和过程我就不在此介绍了,感兴趣的可以去看一下https://blog.youkuaiyun.com/kane7csdn/article/details/83617086。在这里,介绍一下反卷积过程(可以叫做deconvolution,或者也可以称作convolution transpose)。反卷积也可以理解为逆卷积,顾名思义,卷积的逆过程。...原创 2018-11-26 22:13:35 · 1482 阅读 · 0 评论 -
[paper阅读理解] 基于Recurrent Attention Learning的弱监督人体动作识别
Weakly Supervised Human Activity Recognition from Wearable Sensors by Recurrent Attention LearningJun He, Qian Zhang, Liqun Wang, Ling Pei注:博文中的英文表述、公式以及图片均出自此paper。Abstract传统的人体动作识别(HAR)依赖于大量...原创 2019-10-15 15:08:01 · 432 阅读 · 0 评论 -
用文氏图来理解卷积神经网络如何决定提取哪些特征
在机器学习中,卷积神经网络(CNN)经常使用在图像分类的特征提取上,那么CNN是如何决定提取哪些特征的呢,这里我想用文氏图(Venn)来理解一下。文氏图(Venn diagram)也叫韦恩图,是用来表示集合的一种草图。CNN提取特征(训练)和匹配特征(识别)的实际过程就是拿权值参数不同的fliters与输入的区域块相点乘。现在有一个带标签的图片训练集,其中包含有Object...原创 2018-12-08 12:09:34 · 5572 阅读 · 2 评论 -
Tensorflow中CNN采用padding='same'时补零位置、卷积核位置
首先关于padding='same'的理解请参考TensorFlow中CNN的两种padding方式“SAME”和“VALID”那么问题是,在采用padding='same'补零时,补零位置怎样分配?卷积核kernel的位置又在哪呢(与数据点如何对应)?太长不看传送门:结论(tensorflow version1.11.0)数据长度为4,卷积核长度为3,步长为1,采用padding...原创 2018-12-08 15:27:22 · 7664 阅读 · 4 评论 -
Python numpy 归一化和标准化 代码实现
归一化 (Normalization)、标准化 (Standardization)和中心化/零均值化 (Zero-centered)def normalization(data): _range = np.max(data) - np.min(data) return (data - np.min(data)) / _rangedef standardization(d...原创 2019-01-14 13:29:04 · 178953 阅读 · 4 评论 -
ssh远程python(tensorflow)编程
对象:客户端和服务器客户端就是软件编写者,拥有一台普通笔记本电脑/台式机。服务器是一台配置比较高的电脑,用来跑程序。服务器Ubuntu 18 GTX1080Ti服务器要安装显卡驱动、CUDA、cuDNN、python和tensorflow-gpu这些安装的攻略去网上找,有很多,比如:https://blog.youkuaiyun.com/Aiolia86/article/de...原创 2019-04-16 21:11:20 · 996 阅读 · 0 评论 -
ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory
检查 /usr/local/cuda-9.0/lib64 下是否有 libcublas.so.9.0如果有,终端输入:sudo ldconfig /usr/local/cuda-9.0/lib64转载 2019-09-03 09:52:29 · 417 阅读 · 0 评论 -
用简单的例子来理解机器学习中的precision、recall、F1-score、accuracy
主要介绍机器学习中的precision、recall、F1-score、accuracy的计算方法,以及为什么在有些情况下要用F1-score而不是precision来衡量机器学习分类效果。原创 2018-11-25 15:25:16 · 2147 阅读 · 0 评论 -
[paper阅读理解] 基于半监督卷积神经网络的人体动作识别
Semi-supervised convolutional neural networks for human activity recognition基于半监督卷积神经网络的人体动作识别Zeng, M. Y., Tong & Wang, Xiao & Nguyen, Le T. & Mengshoel, Ole & Lane, Ian. (2017). S...原创 2018-11-25 16:09:52 · 3184 阅读 · 0 评论 -
Python中使用pandas.get_dummies()生成one-hot编码标签
one-hot编码是监督学习中经常对标签处理的一种方式。假设我们有一组标签:import numpy as npimport pandas as pdlabels = np.array(['Cat', 'Dog', 'Dog', 'Cat', 'Bird', 'Fish'])print("Labels shape: %d" % labels.shape)print("Label...原创 2018-11-20 12:37:10 · 1766 阅读 · 1 评论 -
在win10中利用Anaconda直接安装tensorflow-gpu 不需要另行安装cuda cudnn
最近在用tensorflow跑cnn,之前一直用cpu版本,最近主机到了,开始学着装gpu版本。上网看了一下,大多数tensorflow-gpu的安装分三部分:Anaconda的安装、CUDA+cudnn的安装、tensorflow-gpu的安装。这些安装之间的版本要保持匹配,挺晕的。但其实,利用Anaconda,是可以一步到位的。本机配置:win10 gtx1060首先下载...原创 2018-11-03 21:44:48 · 10556 阅读 · 12 评论 -
Tensorflow如何保存、读取model (即利用训练好的模型测试新数据的准确度)
目标:cnn2d.py cnn2d_test.py 训练网络,并保存网络模型 读取网络,用测试集测试准确度 直接贴代码:(只贴了相关部分,浏览完整代码请到GitHub)1. cnn2d.pyimport tensorflow as tfimport numpy as npfrom sklearn import metricsprint("### Proce...原创 2018-11-06 22:07:57 · 7282 阅读 · 0 评论 -
Tensorflow中tf.layers.dense()在RNN网络搭建中的使用
一般来说,tf.layers.dense()多用于CNN网络搭建时搭建全连接层使用。但在RNN网络搭建,特别是涉及到用RNN做分类时,tf.layers.dense()可以用作RNN分类预测输出。 分类预测输出一般形式:其中n_hidden为RNN cell的units个数,n_classes为labels的个数。import tensorflow as tfweights...原创 2018-11-07 17:00:53 · 2105 阅读 · 0 评论 -
Python中生成并绘制混淆矩阵(confusion matrix)
在机器学习中经常会用到混淆矩阵(confusion matrix),不了解的同学请参考这篇博文:ML01 机器学习后利用混淆矩阵Confusion matrix 进行结果分析本文参考:使用python绘制混淆矩阵(confusion_matrix)首先import一些必要的库:from sklearn.metrics import confusion_matrix # 生成...原创 2018-11-05 21:11:35 · 67167 阅读 · 12 评论 -
Python中使用numpy对序列进行离散傅里叶变换DFT
看了大佬对DFT的介绍后感觉离散傅里叶变换对序列信号的处理还是很有用的,总结下来就是DFT可以增加有限长序列的长度来提高物理分辨率。自己用python中的numpy库实现了一下:其中绘图库的使用请参考:Python绘图将有效长度为4的单位序列,变换为长度16的DFT谱线。import numpy as npimport matplotlib.pyplot as plta...原创 2018-11-13 19:47:35 · 8097 阅读 · 1 评论 -
[paper阅读理解] 自动标注在基于智能手机对人体日常生活动作进行识别中的应用
Automatic Annotation for Human Activity Recognition in Free Living Using a Smartphone自动标注在基于智能手机对人体日常生活动作进行识别中的应用Cruciani, F., et al. (2018). "Automatic Annotation for Human Activity Recognition i...原创 2018-11-24 17:11:32 · 1051 阅读 · 0 评论 -
机器学习中Optimizer是什么,优化过程中改变了什么,learning rate是什么?
在线性回归或者监督学习中,我们会计算预测值与真实值之间的差距,也就是loss。在计算得出loss之后,通常会使用Optimizer对所构造的数学模型/网络模型进行参数优化,通常情况下,优化的最终目的是使得loss趋向于最小。首先,要了解的是,Optimizer是基类,在实际使用过程中,使用的是它的复写类,有:GradientDescentOptimizer AdagradOpt...原创 2018-11-23 10:42:18 · 4192 阅读 · 2 评论 -
机器学习中交叉熵cross entropy是什么,怎么计算?
项目背景:人体动作识别(分类),CNN或者RNN网络,softmax分类输出,输出为one-hot型标签。loss可以理解为预测输出pred与实际输出Y之间的差距,其中pred和Y均为one-hot型。计算loss的意义在于为接下来的optimizer提供优化的指标,即optimizer优化的目的为最小化loss。在使用softmax层进行分类时,loss一般使用交叉熵cross_en...原创 2018-11-20 18:26:03 · 1830 阅读 · 0 评论 -
[CNN]Youtube上迄今为止最好的卷积神经网络入门教程——笔记
CNN NotebookKenn 2018/11/1最近在学CNN,大学的同学给我推了一个视频,感觉写得简单易懂,所以记了篇笔记。笔记差不多到视频17分钟左右,但基本把CNN的原理、结构都讲了一遍,而且个人感觉很好理解。笔记用很low的英文写的(也是为了四六级?)。我在本篇blog中加入了一些代码,帮助理解。如果我的理解有差错,请大家指出,谢谢。同时我还有超多不理解的地...原创 2018-11-01 15:56:08 · 15513 阅读 · 9 评论