
神经网络学习
迷迷糊糊也好
这个作者很懒,什么都没留下…
展开
-
gensim文本相似度比较浅析探究
这篇文章不是复制粘贴代码叫你怎么生成向量,怎么用余弦相似度计算文档的相似度(虽然可能也有这样的功能),而是尝试探究文档相似度比较的背后发生了什么。也许从很多百度得到的资料,明白了两个向量是如何计算相似度的,很简单:cos(a)=(A.B)/(|A|.|B|).很简单不是吗?但是这里有个问题,不同文档,分词后它的词向量个数不同,比如:this is beebee这两个文档一个有三个词,一个两...原创 2019-05-13 00:57:49 · 1311 阅读 · 0 评论 -
基于tensorflow改写的mnist手写数字识别
隐藏层两层,神经元个数可以自定义,学习率采用退化学习率。尽了最大努力,最大识别率目前还不到98%,有没有高手指点一下?# -*- coding: UTF-8 -*-#主程序import numpy as npimport tensorflow as tffrom mnistread import *hidden_layer1_cells=400hidden_layer2_cells...原创 2018-12-24 19:58:49 · 231 阅读 · 0 评论 -
《深度学习之tensorflow。。。》例7-2等高线分析
例子7-2用等高线来图形分类三个样本集的数据。这里,用到了三个参数:x:横坐标y:纵坐标z:等高线坐标值,本例子中,用分类结果(0,1,2)区分高度z合格函数的运用,原例子较为复杂,下面的这个例子较为简短,有利于理解等高线的画法:import numpy as npimport matplotlib.pyplot as pltfrom matplotlib.colors impor...原创 2018-12-18 16:14:24 · 521 阅读 · 0 评论 -
深度学习之批量训练数据集大小对训练结果的影响
在学习深度学习的过程中,发现很多例子都采用批量训练的方法,比如每次迭代从数据集中选择50或者100条数据进行训练计算。这么做的好处是可以加快运算速度,但是,经过测试发现,过大批训练数据,容易引起训练结果不准确,拟合度低的缺点,下面我举一个例子说明:import numpy as npfrom sklearn.utils import shuffleimport matplotlib.pypl...原创 2018-12-16 22:47:44 · 19303 阅读 · 2 评论 -
大概了解交叉熵
在TF计算损失的时候,经常用到方差、交叉熵的概念和计算,作为判断两个量距离(通俗说就是近似度)的指标,方差的概念很容易理解,那么交叉熵是什么东西:先看一下教材或百科怎么说的:交叉熵(Cross Entropy)是Shannon信息论中一个重要概念,主要用于度量两个概率分布间的差异性信息。公式为:-(y*Ln(a)+(1-y)Ln(1-a)),其中y为期待值,a为逻辑回归的计算值我们用一组数...原创 2018-12-16 21:43:53 · 257 阅读 · 0 评论 -
《深度学习之tensorflow。。。》例7-1交叉熵的计算
近日看《深度学习之tensorflow。。。》例7-1,作者用到了交叉熵计算损失,用S函数作为激活函数:原代码如下:output =tf.nn.sigmoid( tf.matmul(input_features, W) + b)cross_entropy = -(input_lables * tf.log(output) + (1 - input_lables) * tf.log(1 - ou...原创 2018-12-16 20:40:41 · 235 阅读 · 0 评论 -
浅谈TF的共享变量
先说说为什么需要共享变量。我们在训练模型的时候,需要一次次的输入训练数据,网络的权重和偏执在一次次的迭代过程中,不断地修正自身的值,这个迭代过程,我们通常的编程思路是这么做:conver1_weight=tf.xxx(conver1_weight,…)我们从两个方面考虑这么做的后果:1,迭代过程被封装在自己编写的函数内部(考虑到模块化或者代码易读性需要这么做),那么在函数内部的这个变量就是...原创 2018-12-01 13:27:42 · 624 阅读 · 0 评论 -
TF之eval简述
TF学习中,经常看到tensor.eval这样的用法。tensor.eval()的意义和sess.run()一样,t.eval()等效于sess.run(t).但是二者也有些微区别,run可以同时运行多个tensor,比如下面的例子(引用网友的博客):t = tf.constant(42.0)u = tf.constant(37.0)tu = tf.mul(t, u)ut = tf.m...原创 2018-11-27 10:25:35 · 4954 阅读 · 0 评论 -
python之eval简述
eval()函数在Python中出镜率较高,TF中也频频出现。初学时候经常看的一头雾水。根据自己自学经验的查找的资料总结一下:先说Python中它能干啥,怎么用。函数原型:eval(expression, globals=None, locals=None)参数:globals和locals是表达式中变量所在的命名空间,一般默认是全局,但是也可以自己指定,globals必须是字典类型的数据...原创 2018-11-27 09:58:25 · 686 阅读 · 0 评论 -
tf.setdiff1d
setdiff1d(x,y)也是一个比较奇怪,不常用的函数。这个函数返回两个值:第一个是:在x中出现,但是在y中没有出现的的元素第二个是:这些元素在x中的索引(也就是下标或者位置)我们举例说明:import tensorflow as tfimport numpy as npx=[2,3,1,4,2,5]y=[2,5,6,7,8,3,9]z,idx=tf.setdiff1d(x,...原创 2018-11-26 20:38:08 · 862 阅读 · 0 评论 -
两个奇怪的TF索引操作和比较类函数
tf.invert_permutation(x)这是个奇怪的函数,之所以说奇怪,是因为学到目前为止,我还不清楚它有什么用,这个函数的功能是这么描述的:将x中元素的值当作索引,返回新的张量,用公式表达如下:设张量X=[x1,x2,x3,…xn],那么Y=tf.invert_permutation(X)=[yxi=i]...原创 2018-11-26 18:01:11 · 440 阅读 · 1 评论 -
浅析TF中的多线程
TF在从文件读取大量数据的时候,由于文件读取的速度明显会低于内存中数据处理的速度,按照传统的方法,单流程的程序需要频繁等待文件的读取,然后再处理读取的数据,程序运行效率很慢,为了解决这个问题,TF也采用了多线程处理机制,但是TF的封装特点,导致和我们以前学习的其他语言的多线程处理方式大相径庭,较难理解。为了配合数据存取,TF在实现多线程的时候需要三个类互相配合:Queue,QueueRunner...原创 2019-01-22 11:47:51 · 1174 阅读 · 0 评论 -
tensorflow sobel算子构造表达式的理解
很多代码中,sobel算子表达式的构造语句如下:filter = tf.Variable(tf.constant([[-1.0,-1.0,-1.0], [0,0,0], [1.0,1.0,1.0], [-2.0,-2.0,-2.0], [0,0,0], [2.0,2.0,2.0], ...原创 2019-01-16 23:18:19 · 1272 阅读 · 0 评论 -
tensorflow训练中出现nan问题
深度学习中对于网络的训练是参数更新的过程,需要注意一种情况就是输入数据未做归一化时,如果前向传播结果已经是[0,0,0,1,0,0,0,0]这种形式,而真实结果是[1,0,0,0,0,0,0,0,0],此时由于得出的结论不惧有概率性,而是错误的估计值,此时反向传播会使得权重和偏置值变的无穷大,导致数据溢出,也就出现了nan的问题。解决办法:1、对输入数据进行归一化处理,如将输入的图片数据除以2...转载 2019-03-10 09:42:34 · 572 阅读 · 0 评论 -
python filter()函数
经常用户数据的过滤,filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。以下是 filter() 方法的语法:filter(function, iterable)比如我们有如下数据:34....原创 2019-05-09 23:00:37 · 229 阅读 · 0 评论 -
torch.utils.data.Dataset用法
利用继承自Dataset的类,可以访问训练所需的数据比如一下数据:保存为csv文件from torch.utils.data import Datasetimport pandas as pd #这个包用来读取CSV数据class mydataset(Dataset): def __init__(self,csv_file): #self参数必须,其他参数及其形式随程序需要而不同...原创 2019-05-04 16:35:27 · 19500 阅读 · 6 评论 -
一个插件加速你的VS Code写Python的速度
VS Code是一个轻量化,免费的IDE,很多人喜欢用它写程序,但是很多人都觉得写Python的时候,VS Code的自动代码完成功能太慢了,远远不如Pycharm快,有的人甚至反映输入“.”以后,代码提示要一二十秒钟才会出现。如果你安装了我介绍的这个扩展插件,相信一定会体验到飞一般,甚至比PyCharm还快很多的提示速度。当然,第一次仍然和Pycharm的第一次一样慢,大概就四五秒,之后就是毫秒...原创 2019-03-25 23:03:57 · 10624 阅读 · 0 评论 -
关于卷积核输入输出通道数的简单只直观图示
图片来自网络。https://segmentfault.com/q/1010000016667038转载 2019-03-13 10:14:00 · 5099 阅读 · 1 评论 -
卷积函数演示
直接上代码吧:import numpy as npimport tensorflow as tf#此代码仅用于演示conv2d的参数意义,主要是padding,stride#先以2维矩阵测试,通道为channelsinput_channels=1input_data=np.reshape(np.linspace(1.0,60.0*input_channels,num=60*input...原创 2019-03-12 22:49:55 · 632 阅读 · 0 评论 -
tensorflow多线程之QueueRunner的小总结
上一篇总结了FIFOQueue可知,有两种情况会挂起,一旦挂起,下面再花团锦簇的代码也是白瞎,不会得到执行,为了不让系统挂起,TF采用QueueRunner来控制对Queue的访问(尤其是程序猿自己写的复杂访问操作,不仅仅是enqueue,dequeue等)。QueueRunner可以创建独立的线程来实现对Queue的独立访问。...原创 2019-03-15 22:04:25 · 1104 阅读 · 0 评论 -
一个有激活函数和没有激活函数的例子
闲来无事写的,本来想可视化一些,但是python编程实在不会,只能简化一下,自己理解吧PS:环形测试数据的生成代码来自网上import tensorflow as tfimport numpy as npimport matplotlib.pyplot as plt#为了说明问题,两个模型都设计为两层隐藏层tf.reset_default_graph()#生成测试数据类型1def ...原创 2019-03-11 11:27:39 · 1158 阅读 · 0 评论 -
学习python的lambda表达式
lambda表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数。lambda所表示的匿名函数的内容应该是很简单的,如果复杂的话,干脆就重新定义一个函数了,使用lambda就有点过于执拗了。lambda就是用来定义一个匿名函数的,如果还要给他绑定一个名字的话,就会显得有点画蛇添足,但是并不意味着不能给他定义一个名字。如下所示:add = lambda x,...原创 2019-03-19 17:28:03 · 346 阅读 · 0 评论 -
Python中的sorted函数以及operator.itemgetter函数
本文源自 洞庭小哥 的博文:https://blog.youkuaiyun.com/lewsn2008/article/details/12068205operator.itemgetter函数operator模块提供的itemgetter函数用于获取对象的哪些维的数据,参数为一些序号(即需要获取的数据在对象中的序号),下面看例子。a = [1,2,3]>>> b(a) 2 &g...转载 2019-03-19 15:46:02 · 228 阅读 · 0 评论 -
tensorflow多线程之Queue的小总结
只总结一下用的最多的先进先出队列FIFOQueue吧,其他队列一样,只不过出队的数据次序不同罢了。队列的性质,数据结构课程都会讲到,不在重复总结,TF为此结构准备了四个常用操作以符合队列的性质:FIFOQueue.enqueue():单个数据元素入队FIFOQueue.enqueue_many():多个元素批量入队FIFOQueue.dequeue():单个数据元素出队FIFOQueue...原创 2019-03-14 19:40:07 · 461 阅读 · 0 评论 -
深度学习tensorflow:入门、原理与进阶实战的第一个例子简化演示
深度学习tensorflow:入门、原理与进阶实战的第一个例子,我做了适当简化,图像动态演示数据在训练过程中,不断逼近函数y=2x的过程。import tensorflow as tfimport numpy as npimport matplotlib.pyplot as plt#准备训练数据,并且画出数据点的分布train_X=np.linspace(-1,1,100)train_...原创 2018-12-02 14:26:35 · 2035 阅读 · 0 评论 -
random_crop随机切割
通常用于切割图像数据。第一个代码例子请在本地运行#例子1import cv2import tensorflow as tfimg = cv2.imread("02.jpg)print(img)cv2.imshow("inputaa", img)import tensorflow as tfsess=tf.InteractiveSession() height, width = i...原创 2018-11-19 13:45:17 · 7941 阅读 · 0 评论 -
tf.split用法
按照行或者列分割一个矩阵第一个参数是待切分的张量,第二个是切分的大小,共切分为三个,每一个分别为4列,15列,11列。第三个参数为1表示按照列切分,为0表示按照行切分。切分的子块的大小加起来应该等于母块的大小。比如这个例子,4+15+11=30列看下面的代码例子...原创 2018-11-16 13:42:58 · 2594 阅读 · 0 评论 -
tf.slice用法
函数:tf.slice(inputs, begin, size, name)作用:从列表、数组、张量等对象中抽取一部分数据begin和size是两个多维列表,他们共同决定了要抽取的数据的开始和结束位置begin表示从inputs的哪几个维度上的哪个元素开始抽取 ,begin基于下标0开始size表示在inputs的各个维度上抽取的元素个数若begin[]或size[]中出现-1,表示抽取...原创 2018-11-16 13:39:36 · 1836 阅读 · 0 评论 -
tf.squeeze和tf.expand_dims的用法
tf.expand_dims(input, axis=None, name=None, dim=None),在axis位置(此处不做方向理解)增加一个维度,squeeze是其反向操作。代码最说明问题:import numpy as npimport tensorflow as tfT=np.array([[2,2,3,3],[4,5,6,4]])print("原始矩阵a:\n&a原创 2018-11-16 11:53:51 · 977 阅读 · 1 评论 -
TF Session.run注入参数简单例子
也有叫做喂参数的。feed_dict参数的作用是替换图中的某个tensor的值。例如:a = tf.add(2, 5) #a=7b = tf.multiply(a, 3) #b=3*7=21with tf.Session() as sess: print(sess.run(b)) replace_...原创 2018-11-16 11:27:15 · 2832 阅读 · 0 评论 -
TF random_normal和Python numpy random.normal的用法
先看TFtf.random_normal()函数用于从服从指定正太分布的数值中取出指定个数的值。tf.random_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)再看NPnp.random.normal()给出均值为loc,标准差为scale的高斯随机数(场).numpy.random...原创 2018-11-16 11:21:52 · 3044 阅读 · 0 评论 -
TF入门:关于图的我的理解
TensorFlow以下简称TF,里面很多华丽的新词汇,什么基于数据流图,什么张量等等,而且TF的代码编写方式大大出乎初学者的意料,和我们以前传统的编写代码方式很不同,初学一头雾水。。我先讲一下我理解的概念:先说什么是图。先扯远一些,说说编码历史。最初我们编码需要自己写一个流程图,上面有什么判断循环之类的图形和线条,然后我们按照流程图的思路编写代码。后来随着系统越来越复杂,产生了类的概念,我...原创 2018-11-16 11:12:26 · 752 阅读 · 2 评论 -
转:神经网络(容易被忽视的基础知识)
转自知乎大神的文章:原文点击这里转载 2018-11-16 11:09:26 · 351 阅读 · 0 评论 -
偏执值的意义
神经元的输出,在作用激励函数(也有称激活函数)之前,是权重和输出的点积,形如:w·x+b的形式,wx可以理解,b代表什么意思?最初的最简单神经网络,输入输出是线性变换,当权重和输出的点积大于某一个阈值的时候,输出1,否则输出0.如下w·x>t------输出1w·x<t------输出0t衡量输出1的难易度。这个算式变换一下:w·x-t>0----输出1w·x-t&...原创 2018-11-16 11:03:12 · 1438 阅读 · 0 评论 -
python中星号(*)的用法
这里不说乘法,大家都知道先看几个测试语句:import numpy as npa=np.random.rand(2)print(a)print(*a)输出结果:[0.95721482 0.55708755]0.9572148191916312 0.5570875529243636数列被变成空格分成的数据,是不是字符串呢?我们再检验一下:b=(*a).split(" ")...原创 2018-11-16 11:00:13 · 4659 阅读 · 1 评论 -
简单看懂jupyter张量的显示
TF显示矩阵的时候,一开始对于高维张量的显示有些不适应,总结一下:先看代码:import numpy as npT1=np.array(np.random.randint(1,9,[5]))print(&amp;quot;1维数据的显示:\n&amp;quot;,T1)T2=np.array(np.random.randint(1,9,[2,3]))print(&amp;quot;2维数据的显示:\n&amp;quot;,T2)T原创 2018-11-23 20:55:11 · 692 阅读 · 0 评论 -
tf.concat and stack用法
tf.concat(values, axis, name=‘concat’):按照指定的已经存在的轴进行拼接t1 = [[1, 2, 3], [4, 5, 6]]t2 = [[7, 8, 9], [10, 11, 12]]tf.concat([t1, t2], 0)==&amp;amp;gt;[[1, 2, 3][4, 5, 6][7, 8, 9][10, 11, 12]]按照行拼接,多了两...原创 2018-11-17 22:40:17 · 170 阅读 · 0 评论 -
tf.unstack 用法
看代码:import tensorflow as tfimport numpy as npt=np.random.randint(1,10,(3,5))ustack1=tf.unstack(t,axis=1)ustack2=tf.unstack(t,axis=0)sess=tf.Session()print(t)print(sess.run(ustack1))print(sess...原创 2018-11-17 22:41:37 · 4822 阅读 · 0 评论 -
tensorflow创建变量以及根据名称查找变量
原文来源于:https://www.jb51.net/article/136172.htm声明变量主要有两种方法:tf.Variable和 tf.get_variable,二者的最大区别是:(1) tf.Variable是一个类,自带很多属性函数;而 tf.get_variable是一个函数;(2) tf.Variable只能生成独一无二的变量,即如果给出的name已经存在,则会自动修改生成...转载 2018-11-28 21:33:28 · 614 阅读 · 0 评论 -
TF数据转换函数
看代码吧,这类函数支持标量和张量作为参数,输出结果是张量:import tensorflow as tfimport numpy as npsess=tf.Session()print(“tf.string_to_number(string_tensor,out_type),string_tensor也可以是标量\n需要注意, 默认转换为float,如果指定 out_type,那么字符串表...原创 2018-11-18 16:29:21 · 473 阅读 · 0 评论