
python
文章平均质量分 57
DX_dove
致力于计算机视觉的开发。
展开
-
python语法-偏函数和装饰器
装饰器促发后的执行过程:当某个函数加上@装饰器以后,这个装饰器马上被执行,上面例子中,就是logging()函数被执行。而logging函数的返回值,才开始执行被装饰得函数say()。第一步:执行装饰器@delay,这个装饰器函数是一个偏函数,是一个新的类了,不再是原始的类DelayMan。这里记录下自己理解的装饰器:装饰器就是装饰现有函数,现有函数不需要有任何代码修改的情况下,增加函数的功能。2、偏函数提前固定了2个参数,包装啦一层函数,简化了函数的调用,产生来新的函数地址。第三步:执行add()函数。原创 2023-10-19 15:48:46 · 214 阅读 · 0 评论 -
LSTM-tf.nn.static_rnn与tf.nn.dynamic_rnn.用法详解
最近研究LSTM的网络,想将LSTM应用到图像上,查资料发现,用到图像上的LSTM叫ConvLSTM,在这里记录下最核心的两个函数用法: tf.nn.static_rnn与tf.nn.dynamic_rnn.这两个函数是tensoflow针对RNN的LSTM提供的两个函数,两个函数的功能上其实差不多,但是tf.nn.dynamic()函数更加灵活.这里我还主要讲解函数用法没和两个函数输入数据...原创 2018-07-23 11:06:23 · 6378 阅读 · 0 评论 -
pytorch学习:初始化权重并对整个网络的参数进行初始化
pytorch的几种权重初始化方式:PyTorch提供了多种参数初始化函数: torch.nn.init.constant(tensor, val) torch.nn.init.normal(tensor, mean=0, std=1) torch.nn.init.xavier_uniform(tensor, gain=1)上面的初始化函数的参数tensor,...转载 2018-08-09 20:48:06 · 15882 阅读 · 2 评论 -
Ubuntu下快速安装opencv2//opencv3
Ubuntu下安装opencv其实非常简单,之前下安装包,多线程编译,再make,而且opencv3有个包一直下不下来,其实用下面几种方法安装,可谓是方便实用。 1.conda安装,这要求你电脑安装Anoconda,不过一般用python开发的程序员,应该都装了这个。 然后直接输入:conda install -c https://conda.anaconda.org/menpo op...原创 2018-08-08 09:51:43 · 2847 阅读 · 0 评论 -
python以相同规律打乱多组数据的方法
在深度学习的数据训练过程中,虽然tensorflow和pytorch都会自带打乱数据进行训练的方法,但是当我们自己生成数据,或者某些情况下依然要自己手动打乱顺序. 这里介绍如何以相同规律打乱X,Y两组数据,多组数据相同道李.第一种:(X,Y是list的格式,不是array) 产生相同的种子(seed)打乱顺序:import randomseed =50x_batch, y_batc...原创 2018-08-29 10:10:16 · 5124 阅读 · 0 评论 -
pycharm tab格式不匹配的错误
有时候,用Pycharm打开别人的工程文件,经常会出现每行代码前tab不匹配的错误:查阅资料后,有一个简单的设置可以轻松解决: Edit -> Convert Indents -> To Spaces OK,搞定了....原创 2018-08-25 21:45:15 · 1844 阅读 · 0 评论 -
pytorch 读取数据方法总结
用pytorch读取数据,确实要比tensorflow简单,但是也得熟悉半个小时左右.下面总结下我的体验,直接用代码(1)torch.utils.data.Dataset(2)torch.utils.data.DataLoader这两个类搭配的数据读取代码:import osimport globimport cv2import numpy as npfrom torchvisi...原创 2018-09-27 20:32:27 · 9363 阅读 · 2 评论 -
patchGAN-patch判别器的理解和多种写法(tensorflow)
参考下面的github链接就明白了:https://github.com/ChengBinJin/V-GAN-tensorflow原创 2018-10-18 21:59:09 · 10137 阅读 · 2 评论 -
pytoch可视化网络工具-pytorchviz
tensoeflow的可视化工具是tensorboard,但是tensorboard在显示网络结构图的时候,显示特别混乱.之前看了caffe的可视化网络图,很清晰,最近发现pytorch的网络图可视化工具,对网络图的显示也很清晰.第一步:安装:一行命令安装conda install -c anaconda graphviz python-graphviz第二步:可视化代码(最好自己单独...原创 2018-10-09 15:58:22 · 2616 阅读 · 0 评论 -
conda建立虚拟环境并安装相应包
1.ubuntu下conda建立虚拟环境:建立环境:conda create -n your_env_name python=X.X(2.7、3.6等)使用激活(或切换不同python版本)的虚拟环境:Linux: source activate your_env_namepython --version对虚拟环境中安装额外的包:conda install -n your_en...原创 2018-10-16 12:04:20 · 25274 阅读 · 0 评论 -
pytorch0.4使用注意
1.梯度1.Variable()中,requires_grad=Fasle时不需要更新梯度, 适用于冻结某些层的梯度;2.volatile=True相当于requires_grad=False,适用于测试阶段,不需要反向传播。在torch>=0.4中,这个现在已经取消了,使用with torch.no_grad()或者torch.set_grad_enable(grad_mode)来替代...原创 2018-11-28 20:38:55 · 3806 阅读 · 0 评论 -
pytroch中指定GPU或者CPU写法
之前习惯用.cpu(),.cuda()来指定.现在不要显示的指定是gpu, cpu之类的. 利用.to()来执行# at beginning of the scriptdevice = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")...# then whenever you get a new Tenso...转载 2018-11-28 20:43:02 · 6914 阅读 · 0 评论 -
当python遇到h5py,h5py数据集的制作
制作可变大小的数据集h5文件,可以参考下面的博客链接:https://www.jishux.com/p/c11fa4f31d757d5cdset = f.create_dataset('mydata', shape=(1, 1,128,128), maxshape=(None, 1,128,128), chunks=(1, 1,128,128))加了这个参数chunks=(1, 1,12...转载 2018-12-11 17:18:46 · 2410 阅读 · 0 评论 -
python画分布图(hist)等等
参考链接:https://blog.youkuaiyun.com/jinruoyanxu/article/details/53390943转载 2018-12-25 22:14:19 · 15967 阅读 · 1 评论 -
库函数tf.conv2d()卷积的python实现
话不多说,代码说话:import numpy as npimport mathclass Conv2D(object): def __init__(self, shape, output_channels, ksize=3, stride=1, method='VALID'): self.input_shape = shape self.output_channels = outp...原创 2019-08-17 23:12:20 · 1327 阅读 · 1 评论 -
python读取文件夹中的图片
下面记录一下Python读取文件夹下图片的两种方法:import osimagelist = os.listdir('./images/')#读取images文件夹下所有文件的名字import globimagelist= sorted(glob.glob('./images/' + 'frame_*.png'))#读取带有相同关键字的图片名字,比上一中方法好...原创 2018-06-22 20:34:58 · 28580 阅读 · 0 评论 -
TensorFlow中多模型载入,以及多种加载参数的方式
最近做一个课题,要讲两个网络接在一起,自己摸索了好几天,查阅了h各种资料,最后勉强解决了问题.下面总结一下:首先是保存参数的方法: 我最初都是用的最简单的方式保存图的参数,然后加载图的参数,见下面代码: saver = tf.train.Saver() saver.restore(sess, args.dir_models + 'model.ckpt')#加载模型 saver.s...原创 2018-06-14 22:01:07 · 6417 阅读 · 11 评论 -
linux下:Python-命令行输入参数学习(argparse模块,sys模块,os模块)
经常我们在编译Python代码的时候,会在命令行中增加自己指定的参数: 比如下面这个样子:python main.py --dataset_dir=apple2orange --continue_train True这上面就有3个Python的脚本参数,arg[0],arg[1],arg[2]在main.py中有下面语句来让用户输入用户自己指定的参数.形式很固定,记住就好:i...原创 2018-04-29 13:59:26 · 2571 阅读 · 0 评论 -
python-内置函数map()
map()函数 map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。 下图可以说明: 对应下面的代码def f(x): return x*xprint map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])任务:假设用户输入的英文名字不规范,没有按照首字母原创 2017-04-27 19:39:57 · 393 阅读 · 0 评论 -
python-内置函数map()
map()函数 map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。 下图可以说明: 对应下面的代码def f(x): return x*xprint map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])任务:假设用户输入的英文名字不规范,没有按照首字母原创 2017-04-27 19:41:32 · 306 阅读 · 0 评论 -
python-内置函数filter()
filter()函数是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。例如,要从一个list [1, 4, 6, 7, 9, 12, 17]中删除偶数,保留奇数,首先,要编写一个判断奇数的原创 2017-04-27 21:02:04 · 587 阅读 · 0 评论 -
python-高阶函数sorted()
这里说一下,python中的高阶函数,就是可以自定义的函数作为参数传入函数中。sorted()也是一个高阶函数,它可以接收一个比较函数来实现自定义排序,比较函数的定义是,传入两个待比较的元素 x, y,如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1。如果 x 和 y 相等,返回 0。 因此,如果我们要实现倒序排序,只需要编写一个reversed_cmp函数:d原创 2017-04-27 21:47:30 · 721 阅读 · 0 评论 -
python-返回函数的理解
最近接触python,看到了python中返回函数的概念,以前只接触过函数返回值,比如python就可以返回int,str,list,dict等等类型数据,这里要说的是python还支持返回函数。首先看看python支持返回函数的基本语法def f(): print 'call f()...' # 定义函数g: def g(): print 'call g()原创 2017-04-27 22:25:46 · 18655 阅读 · 6 评论 -
机器学习(1)-KNN算法理解
开始弄机器学习了,一点一点学习机器学习中相关的概念和算法。k-NN用来干什么的 简单来说,我理解的就是分类,就是根据已知训练集样本的种类,来对测试集样本做一个分类。 比如,我有1000张训练样本图片,总共有3个类,然后测试集有500张图片,就可以利用KNN算法根据训练样本的1000个数据来对500张未知分类的样本做一个分类。现在应该了解kNN的用途了吧。2.K-NN算法原理 首先原创 2017-09-15 21:09:39 · 839 阅读 · 0 评论 -
机器学习(4)-理解SVM的损失函数和梯度表达式的实现+编程总结
1.对于SVM这里总结下代码实现SVM的两种代码实现(for循环和矩阵操作) 首先看看SVM的损失函数,梯度函数 损失函数最终形式: L = (1/N)∑iLi + λR(W) 其中: R(W) = ∑k∑s (Wk,s)2 Li = ∑j≠yi max(0, (xiW)j−(xyiW)j+Δ) 理解:yi表示提前知道第yi个分类是正确的。比yi大的评分表示判断原创 2017-09-24 15:55:34 · 2901 阅读 · 1 评论 -
机器学习(5)-理解softmax的损失函数和梯度表达式的实现+编程总结
softmax也是一个用于多分类的线性分类器。 首先来看看softmax的损失函数和梯度函数公式 结合惩罚项,给出总的损失函数: L = -(1/N)∑i∑j1(k=yi)log(exp(fk)/∑j exp(fj)) + λR(W) 下面有几个准备函数也要理解: Li = -log(exp(fyi)/∑j exp(fj)) :这个就是最基本的softmax函数,原创 2017-09-24 16:14:47 · 3764 阅读 · 0 评论 -
机器学习(6)-交叉验证代码实现原理和图像均值化预处理
交叉验证 在训练样本时候,通常会采用一种叫交叉验证的方法,就是将一份数据分为5份(也可以是其他份),然后遍历每一份做测试集,剩下的数据做训练集,这样,一份数据就可以被利用5次,增加了数据的利用率。 下面是代码#将数据分成num_fold份X_train_folds =np.array_split(X_train,num_folds)Y_train_folds = np.array_spli原创 2017-09-24 22:36:58 · 1078 阅读 · 0 评论 -
机器学习(2)-SVM分类算法
SVM算法 SVM是一种很常见的分类算法,了解SVM算法就不从基本概念 去理解了,各种网页上的分享都是千篇一律。这里直接讲解怎么根据一幅图片的输入,来计算SVM的损失函数,权重矩阵的跟新,梯度下降法计算进行最优化。基本概念 前面介绍的KNN算法存在下面2点主要问题: 1.分类器必须记住所有训练数据并将其存储起来,以便于未来测试数据用于比较。这在存储空间上是低效的,数据集的大小很容易就以GB计原创 2017-09-16 13:57:47 · 1952 阅读 · 0 评论 -
Ubuntu14.04 下安装pip和virtualenv的方法
首先用下面命令安装pip,然后在解释pip安装和apt-get的区别:安装命令:wget https://bootstrap.pypa.io/get-pip.py --no-check-certificatesudo python get-pip.py然后进行下面两行语句:检查更新并安装$ sudo pip install --upgrade pip $ sudo pip install --原创 2017-09-10 11:09:12 · 2634 阅读 · 0 评论 -
机器学习(3)-一些常用的Python3.0函数
在这里记载一下我处理图片数据集时候,遇到一些函数;max()和argmax()max是Python的内置函数,而argmax()是numpy的调用函数。 A:是一个[m*n]的矩阵 max(A),求出矩阵A中的最大值 这里的A应该是一个n*1的矩阵。B:B[m,n]矩阵 argmax(),就是求出矩阵最大元素的索引,比如下面的A矩阵,求出就是np.argmax(A)=4,np.argma原创 2017-09-18 15:30:53 · 1158 阅读 · 0 评论 -
linux下自由切换默然编译选择python2还是python3的方法
使用 alternate 机制可以自由切换python默认版本,只需要在终端输入简单的几个指令:sudo update-alternatives –install /usr/bin/python python /usr/bin/python2 100(install前面是2个-) sudo update-alternatives –install /usr/bin/python python...转载 2017-09-11 10:58:42 · 1108 阅读 · 0 评论 -
pycharm写中文注释,编译不通过问题的解决方案
最近用pycharm学习Python,发现这个IDE不支持中文注释,就是注释了中文后,编译的时候会出错: 其实解决方发很简单,就是在自己写的代码的最前面加上下面两条语句:#!/usr/bin/python# -*- coding:utf8 -*-开始我觉得还有这种操作,后面试试才发现,真有这种操作。 下面看看我的代码截图,就知道加到哪里了。 就是加在最前面原创 2017-09-11 12:48:23 · 3596 阅读 · 1 评论 -
Python的类,类的继承,类中__init__( ),__str__( ),__del__( ),类中的self
最近看Python,看到了Python中的类,类的继承,对象self,等概念,于是学习了下,下面做一个记录,就从一段代码开始分析起: 下面一段代码里,有一个父类mytime,然后定义了一个子类mydatatime,继承了父类mydata。import timeclass mytime(object): def __init__(self, hour=21, minute=13, s...原创 2018-03-18 13:53:37 · 1578 阅读 · 0 评论 -
python-闭包概念和append()和extend()的不同
首先看一段代码:def count(): fs = [] for i in range(1, 4): def f(j): def g(): return j*j return g r = f(i) fs.append(r) return fsf1,原创 2017-04-28 11:18:35 · 722 阅读 · 0 评论