- 博客(68)
- 收藏
- 关注
转载 面向对象编程的三大特性
转载自 面向对象的三大特性封装、继承、多态封装和继承的作用都是为了代码重用,多态是为了接口重用。封装封装是把客观事物抽象成类,并且把自己的属性和方法让可信的类或对象操作,对不可信的隐藏。继承继承可以使某个类使用现有类的所有功能,并且无需重新编写原来的类的情况下对这些功能进行扩展。继承得到的新类称为“子类”或“派生类”。被继承的父类称为“基类”、“父类”或“超类”。继承的过程是一个...
2019-08-09 21:54:12 1171
原创 在Ubuntu 16.04.6上使用tensorflow-GPU出现的问题记录及解决办法
由于需要,实习时在服务器上安装了anaconda3+tensorflow-gpu+keras,使用的时候一直都是使用import osos.environ['CUDA_VISIBLE_DEVICES']=“0”来指定使用第0个gpu,程序也一直是使用GPU加速计算的,但是奇怪的是今天忽然发现程序运行很慢,并且运行时出现“Your CPU supports instructions tha...
2019-07-20 19:53:47 1109
原创 linux vim 多行注释, 批量移动文件
linux vim 多行注释ctrl+v 进入到视图模式进行上下移动选择多行:按j或k上下移动(选择文件全文shift+g,被选中文件的行首有明显的变化)按大写I进入insert模式,此时,光标会停在初始位置闪烁,输入注释符号: 如#或//只用输入一个按ESC,回到命令模式。此时前面选中的几行行首全部加入了注释移动多个文件到另一文件夹使用-t参数mv vectors.txt ...
2019-07-20 19:17:46 909
原创 pandas中Dataframe选取指定行和列或删除含有指定数值的行或者列
pandas中的切片方法[],loc,iloc,at,iat,ix基础数据import pandas as pdimport randomrandom.seed(0)rnd_1 = [random.randrange(1,20) for x in range(10)]rnd_2 = [random.randrange(1,20) for x in range(10)]rnd_3 =...
2019-07-17 11:08:11 73270 3
原创 keras从数据生成器ImageDataGenerator中的flow_from_directory中获取加载的文件名和相应的类别
最近在做图像分类的任务,使用了densenet进行fine-tune,因为图片数据比较多且占内存因此数据的加载使用ImageDataGenerator生成器,使用flow_from_directory从文件夹中获取各个类别的数据。因为在测试的时候,需要知道哪个数据被判错了,要找到对应的文件名,...
2019-07-12 14:53:18 4436 2
原创 Linux Shell 利用sed批量更改文件名
更改文件后缀将所有的.html文件更改为. jpg文件[root@show day74]# for name in `ls *.html`;do echo $name ${name%.html}.jpg;done00.html 00.jpg01.html 01.jpg02.html 02.jpg03.html 03.jpg04.html 04.jpg05.html 05.jpg0...
2019-07-10 22:08:59 1763
原创 二分类和多分类问题的评价指标总结
二分类评价指标准确率(Accuracy)评价分类问题的性能指标一般是分类准确率,即对于给定的数据,分类正确的样本数占总样本数的比例。注意:准确率这一指标在Unbalanced数据集上的表现很差,因为如果我们的正负样本数目差别很大,比如正样本100个,负样本9900个,那么直接把所有的样本都预测为负, 准确率为99%,但是此分类模型实际性能是非常差的,因为它把所有正样本都分错了。精确率对...
2019-07-09 18:51:55 63819 7
原创 Keras中的回调函数Callbacks详解
介绍回调函数是一组在训练的特定阶段被调用的函数集,你可以使用回调函数来观察训练过程中网络内部的状态和统计信息。通过传递回调函数列表到模型的.fit()中,即可在给定的训练阶段调用该函数集中的函数。虽然我们称之为回调“函数”,但事实上Keras的回调函数是一个类keras.callbacks.Callback()是回调函数的抽象类,定义新的回调函数必须继承自该类类属性params:...
2019-07-07 21:28:58 28530 1
原创 json.dump(), json.dumps()与json.load(), json.loads()区别
json 模块提供了一种很简单的方式来编码和解码JSON数据。 其中四个主要的函数是 json.dump(), json.dumps()与json.load(), json.loads()。1.json.dumps()将一个Python数据结构转换为JSON,即将dict类型的数据转成str,因为如果直接将dict类型的数据写入json文件中会发生报错,因此在将数据写入时需要用到该函数。im...
2019-07-07 16:49:16 4977
原创 【已解决】使用keras对resnet, inception3进行fine-tune出现训练集准确率很高但验证集很低的问题(BN)
最近用keras跑基于resnet50,inception3的一些迁移学习的实验,遇到一些问题。通过查看github和博客发现是由于BN层导致的,国外已经有人总结并提了一个PR(虽然并没有被merge到Keras官方库中),并写了一篇博客,也看到知乎有人翻译了一遍:Keras的BN你真的冻结对了吗当保存模型后再加载模型去预测时发现与直接预测结果不一致也可能是BN层的问题。总结:keras...
2019-07-02 21:18:45 13417 22
原创 已解决 failed call to cuInit: CUDA_ERROR_NO_DEVICE
重启服务器之后就出现连接不上NVIDIA驱动的情况。这个时候tensorflow还是可以运行的,但只是在用cpu跑。安装gpu版的TensorFlow时,也显示已安装。首先在终端输入nvidia-smi出现NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that th...
2019-07-02 10:52:52 19118 2
原创 linux下导入自己写的模块,找不到conda命令
自定义的模块必须PYTHONPATH上,否则在导入该模块时会出现找不到该模块的错误,即必须把所需要的模块的路径添加到PYTHONPATH(一般情况下是把lib/python3.5/site-packages添加到PYTHONPATH)。具体做法如下:(1) 在~/.bashrc 中输出环境变量export PYTHONPATH=$PYTHONPATH:模块路径(2) 更新PATHONPAT...
2019-07-01 21:45:05 1642
转载 keras调用load_model时报错ValueError: Unknown Layer:LayerName, ValueError: Unknown metric function:recall
出现该错误原因因为保存的model中包含了自定义的层(Custom Layer),导致加载模型的时候无法解析该Layer。参考can not load_model() if my model contains my own Layer解决方法在load_model函数中添加custom_objects参数,该参数接受一个字典,键值为自定义的层:model = load_model(mod...
2019-06-27 20:46:30 9743 12
原创 Tensorflow常用函数(三)
1 tensorflow比较函数# 判断每一个数是否大于thresholdgreater = tf.greater(x, threshold)# 判断每一个数是否小于thresholdless = tf.less(x,threshold)# 判断每一个数是否大于等于thresholdgreater_equal=tf.greater_equal(x, threshold)# 判断每一个...
2019-04-17 18:10:28 895
原创 Tensorflow常用函数(二)
tf.lin_space(start, stop, num, name=None)create a sequence of num evenly-spaced values are generated beginning at start. If num > 1, the values in the sequence increase by (stop - start) / (num - ...
2019-04-17 18:05:38 316
转载 Tensorflow基础
TensorFlow 简介TensorFlow 是一个使用数据流图进行数值计算的开放源代码软件库。图中的节点代表数学运算,而图中的边则代表在这些节点之间传递的多维数组(张量)。借助这种灵活的架构,可以通过一个 API 将计算工作部署到桌面设备、服务器或移动设备中的一个或多个 CPU 或 GPU。TensorFlow 最初是由 Google Brain 团队(隶属于 Google 机器智能研究部门...
2019-04-17 15:23:10 316
原创 linux下压缩zip解压缩unzip命令使用
zip将当前目录下的所有文件和文件夹全部压缩成xxx.zip文件,-r表示递归压缩子目录下所有文件.zip -r xxx.zip ./* 将tmp文件夹及文件夹下的所有文件压缩成tmp.zip,并存放在目录/home/下zip -r /home/tmp.zip tmp删除压缩文件中smart.txt文件zip -d myfile.zip smart.txt...
2019-04-17 11:51:37 474
原创 Pandas之read_csv()读取文件跳过报错行
pandas读取文件(read_csv),跳过报错的行读取文件时遇到和列数不对应的行,此时会报错。若报错行可以忽略,则添加以下参数:样式:pandas.read_csv(***,error_bad_lines=False)pandas.read_csv(filePath) 方法来读取csv文件时,可能会出现这种错误:ParserError:Error tokenizing data.C e...
2019-04-16 19:39:12 16123
原创 python函数之默认参数、可变参数、关键字参数和更pythonic的编程
默认参数、可变参数、关键字参数如果一个函数的参数中含有默认参数,则这个默认参数后的所有参数都必须是默认参数也就是说默认参数要放在参数最后。def format_date(year = 2007, month, day): print("%d-%02d-%02d" % (year, month, day))# SyntaxError: non-default argument fol...
2019-04-16 17:21:15 220
原创 在任意文件夹下右键菜单中添加cmd选项
使用cmd时,需要一步一步cd到代码所在的文件夹需要花费很长的时间,以下操作适用于win7和win10系统,其它版本可能略有不同。win+R快捷键,输入regedit后回车,打开注册表编辑器;在注册表编辑器中找到HKEY_CLASSES_ROOT\Directory\Background\shell,右键点击shell,新建项,命名为“open CMD”;右键点击“open CMD”,新建...
2019-04-16 13:12:29 1517 3
原创 python之多线程与多进程
操作系统任务调度时间片大部分操作系统的任务调度采用时间片轮转的抢占式调度方式,也就是说一个任务执行一小段时间后强制暂停去执行下一个任务,每个任务轮流执行。任务执行的一小段时间叫做时间片运行状态:任务正在执行时的状态叫做运行状态就绪状态:任务执行一段时间后强制暂停去执行下一个任务,被暂停的任务就处于就绪状态等待下一个属于他的时间片的到来。并发:每个任务都能得到执行,由于CPU的执行效率非...
2019-04-16 11:41:25 196
原创 pandas学习笔记
异常值检测和过滤使用 describe() 函数查看每一列的描述性统计count 列的元素的个数mean 平均值std 标准方差,描述数据的波动,离散程度min 最小max 最大数据小于标准方差的四倍,认为数据是有意义的DataFrame.info()这个函数可以输出读入表格的一些具体信息。这对于加快数据预处理非常有帮助。独热编码实现方法比较1、pandas自带的get_du...
2019-04-15 22:52:59 364
原创 机器学习中数据的属性类型
关于数据的属性类别的介绍数据集由数据对象组成,一个数据对象代表一个实体。数据对象又称样本、实例、数据点或对象。属性(attribute)是一个数据字段,表示数据对象的一个特征。属性向量(或特征向量)是用来描述一个给定对象的一组属性。属性有不同类型:标称属性(nominal attribute)、二元属性(binary attribute)、序数属性(ordinal attribute)、 数值属...
2019-04-15 11:45:46 6417
原创 python 输入一个字符串,把与字符串的第一个字母相同的字母替换成‘*’
def sub_use_xing(str): ''' 输入一个字符串,把与字符串的第一个字母相同的字母替换成‘*’ :param str: :return: ''' for i in range(1, len(str)): if str[i] == str[0]: str = str[:i] + '*' + s...
2019-04-15 11:27:02 7706
原创 .tsv和.csv格式文件区别及python处理
机器学习中,我们在使用一些经典的分类器对数据进行分类时,需要对数据进行一些必要的预处理。或者我们在使用别人提供的数据使用一些经典的机器学习算法进行学习时,一般常见的数据格式会是.tsv和.csv格式.逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列...
2019-04-09 22:49:41 7500
原创 scikit learn各个常用模型调参总结
SVM对数据进行归一化 (simple scaling)使用RBF kernel使用cross_validation 和 grid_search得到最佳参数gamma和C使用得到的最优C和gamma训练训练数据测试svm的CC是惩罚系数,即对误差的宽容度。一般可以选择为:10^t , t=[- 4,4]就是0.0001 到10000。c越高,说明越不能容忍出现误差,容易过拟合。C...
2019-01-16 11:29:54 7272 2
原创 朴素贝叶斯(附python3代码)
完整代码见github朴素贝叶斯:基于贝叶斯决策理论的分类方法朴素贝叶斯特点优点:在数据较少的情况下仍然有效,可以处理多类别问题缺点:对于输入数据的准备方式较为敏感使用数据类型:标称型数据...
2019-01-12 21:11:10 4597
原创 K折交叉验证与网格搜索算法(scikit learn)
K折交叉验证过程:选择K的值(一般是10),将数据集分成不重叠的K等份 。使用其中的K-1份数据作为训练数据,另外一份数据作为测试数据,进行模型的训练使用一种度量测度来衡量模型的预测性能优点:可通过降低模型在一次数据分割中性能表现上的方差来保证模型性能的稳定性可用于进行参数调节、模型性能比较、特征选择等缺点:交叉验证带来一定的计算代价, 是当数据集很大的时候,计算过程会变得...
2019-01-12 16:16:15 5737 4
原创 上传本地代码及更新代码到GitHub及Git的四种区域五种状态简介
上传本地代码step1:去github上创建自己的Repository, 创建页面如下图:蓝色框为新建的仓库的https地址step2:在你要上传的本地代码文件夹下,右键点击“Git Bash Here”输入echo "# Test" >> README.md以添加注释文档step3:建立git仓库git initstep4: 将项目的所有文件添加到仓库中g...
2019-01-11 17:12:32 477
原创 机器学习实战之k-近邻算法(附python3代码)
kNN(k-Nearest Neighbors,kNN)算法优点: 精度高,对异常值不敏感,无数据输入假定缺点:计算复杂度高、空间复杂度高适用范围:数值型和标称型工作原理:存在一个样本数据集合,也称作训练样本,并且样本集中的每个数据都存在标签,即我们知道样本集中每一条数据与所属分类的对应关系。输入没有标签的新数据后,将新数据的每个特征与训练样本集中的对应的特征进行比较,然后算法提取训练样本...
2019-01-11 15:58:03 1325 1
原创 机器学习实战之树回归(CART)python实现(附python3代码)
树回归CART(Classification And Regression Tree, 分类回归树)完整代码见github环境 python3决策树分类决策树不断将数据切分成小数据集,直到所有的目标变量完全相同,或者数据不能再切分为止。决策树是一种贪心算法,它要在给定的时间内做出最佳选择,但不关心是否达到全局最优。ID3的做法是每次选取当前最佳的特征来分割数据,并按照该特征的所有取值...
2019-01-09 12:13:52 4746 1
原创 机器学习实战之adaboost(附python3代码)
利用AdaBoost元算法提高分类性能元算法(meta-algorithm)或者集成方法(ensemble method)是对其他算法进行组合的一种方式AdaBoost算法优点:范化错误率低,易编码,可以应用在大部分分类器上,无参数调整缺点:对离群点敏感适用数据类型: 数值型和标称型数据bagging和boosting所使用的多个分类器类型都是一致的!bagging: 基于数据随机抽...
2019-01-08 17:31:01 3056 3
原创 决策树python实现(ID3 和 C4.5)
决策树概论决策树是根据训练数据集,按属性跟类型,构建一棵树形结构。一棵决策树包含一个根节点、若干内部节点和若干叶节点。叶节点对应于决策结果,其他每个节点则对应于一个属性测试;每个节点包含的样本集合根据属性测试的结果被划分到子节点中;根节点包含样本全集。从根节点到每个叶节点的路径对应了一个判定测试序列。决策树学习的目的是为了产生一棵泛化能力强,即处理未见示例能力强的决策树,遵循‘分而治之’的策略。...
2018-10-10 21:36:48 1744
转载 聚类简介
https://blog.csdn.net/itplus/article/details/21905449聚类(Clustering)算法本质也是对数据进行分类,将相异的数据尽可能地分开,而将相似的数据聚成一个类别(也叫族,cluster),即物以类聚,从而优化大规模数据库的查询和发现数据中隐含的有用信息和知识。聚类方法主要有以下五类:基于分层的聚类(hierarchical met...
2018-09-07 13:44:14 455
原创 numpy常用函数 (二)
numpy tutorial numpy常用函数 np.arange(n): 元素从0到n-1的ndarray类型 np.ones(shape): 生成全1 np.zeros((shape), ddtype = np.int32) : 生成int32型的全0 np.full(shape, val): 生成全为val np.eye(n) : 生成单位矩阵np.ones_lik...
2018-09-05 17:07:04 1143
转载 SQL注入基础
1 SQL注入简介 SQL注入攻击是将精心构造的恶意SQL语句插入或添加到用户的输入参数中,再将这些参数传递给后台的SQL服务器加以解析并执行的攻击。 即SQL注入攻击是一种利用数据库驱动的Web应用所固有的特性(用户输入的参数将会直接输送到Web应用架构的逻辑层上),以及Web应用开发人员对用户输入的参数没有进行严格的审查所引发的漏洞的攻击。 理解:这是一种由当前数据库驱动的Web应用架构...
2018-08-21 15:35:42 202
原创 Linux系统更改root密码(Ubuntu 16.04)
1、开机长按shift,在出现的界面中,选择*Advanced options for Ubuntu 2、按回车键,在出现的界面中,选中有recovery mode的选项,按e键,不要按回车键! 3、在出现的界面中,找到ro recovery nomodeset 替换为rw single init=/bin/bash 4、按ctrl+x进入单用户模式 5、使用passwd命令重新设定密码...
2018-07-21 14:16:47 1377
转载 利用切片操作去除字符串首尾空格
https://blog.csdn.net/daniel960601/article/details/79174915利用切片操作,实现一个trim()函数,去除字符串首尾的空格,注意不要调用str的strip()方法思路:只需要从头到尾、从尾到头各扫描一次,记录两端需要截取的位置,去除两端空格即可。需要注意全是空格的情况。def trim(s): length = len(s...
2018-04-30 23:42:00 1362 1
转载 xgboost中XGBClassifier()参数详解
http://www.cnblogs.com/wanglei5205/p/8579244.html常规参数booster gbtree 树模型做为基分类器(默认) gbliner 线性模型做为基分类器silent silent=0时,不输出中间过程(默认) silent=1时,输出中间过程nthread nthread=-1时,使用全部CPU...
2018-04-27 17:29:13 29296 6
转载 深度学习:Keras入门(一)之基础篇
https://blog.csdn.net/zdy0_2004/article/details/74736656http://www.cnblogs.com/lc1217/p/7132364.html1.关于Keras1)简介 Keras是由纯python编写的基于theano/tensorflow的深度学习框架。 Keras是一个高层神经网络API,支持快...
2018-04-25 14:02:01 273
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人