Python工具类
小宋是呢
作者简介:深度学习开发分享博主。全网粉丝3W+,阅读量200W+。
CSDN深度学习博客专家以及微信公众号《简明AI》主要作者。创作内容是基于深度学习的理论学习与应用开发技术分享,致力于最简单明了AI技术分享与最实用AI应用教程。
撰写并发表深度学习论文两篇,获得国家级及省级一等奖奖项八次,以第一作者授权实用新型及发明专利共计十余项,天池与BDCI比赛Top10奖项数次。
在某公司担任算法工程师,从事计算机视觉及时序序列数据的检测识别;深度学习工程化经验丰富,擅长针对新算法研究与应用,包括对模型调优、模型转化及多平台部署等。
展开
-
『开发技术』LabelImg安装及使用介绍
LabelImg是一个图形图像注释工具。它是用Python编写的,并使用Qt作为其图形界面。注释以PASCAL VOC格式保存为XML文件,这是ImageNet使用的格式。此外,它还支持YOLO格式观看演示视频安装从源头构建Linux / Ubuntu / Mac至少需要Python 2.6并且已经使用PyQt 4.8进行了测试。但是,强烈建议使用Python ...原创 2019-08-19 11:46:13 · 1706 阅读 · 0 评论 -
『开发技巧』python :与-> 操作来给函数参数增加元信息
0.引子写好了一个函数,然后想为这个函数的参数增加一些额外的信息,这样的话其他使用者就能清楚的知道这个函数应该怎么使用。1.方法使用函数参数注解是一个很好的办法,它能提示程序员应该怎样正确使用这个函数。 例如,下面有一个被注解了的函数:def add(x:int, y:int) -> int: return x + ypython解释器不会对这些注解添加任何的语义。它们不会被类型检查,运行时跟没有加注解之前的效果也没有任何差距。 然而,对于那些阅读源码的人来讲..原创 2020-08-25 11:31:48 · 536 阅读 · 0 评论 -
[开发工具]·pip conda 使用国内源加速
pip conda 使用国内源加速以前使用默认源,有时候下载速度会很慢,所以找了一些国内的pip,conda源,下载的时候可以加速,使用起来也很简单。国内的pip源,如下:推荐使用清华源,支持包比较丰富conda操作单次使用 1 # conda install tensorflow-chttps://mirrors.tuna.tsing...原创 2019-01-07 23:10:16 · 2940 阅读 · 0 评论 -
[PaddleFluid小试牛刀]练习一·DNN线性拟合
[PaddleFluid小试牛刀]练习一·DNN线性拟合PaddlePaddle介绍PaddlePaddle是百度提供的开源深度学习框架,它能够让开发者和企业安全、快速地实现自己的AI想法项目团队汇聚了全球顶级的深度学习科学家,致力于为开发者和企业提供最好的深度学习研发体验框架本身具有易学、易用、安全、高效四大特性,是最适合中国开发者和企业的深度学习工具code#加载库impor...原创 2019-01-10 23:49:08 · 856 阅读 · 0 评论 -
[MXNet逐梦之旅]实战一·使用MXNet拟合曲线(对比MXNet,PyTorch与TensorFlow实现的区别)
[MXNet逐梦之旅]实战一·使用MXNet拟合曲线(对比MXNet,PyTorch与TensorFlow实现的区别)在之前的博文中我们用TensorFlow与PyTorch进行了拟合曲线,到达了不错的效果。我们现在使用MXNet进行相同的曲线拟合,进而来比较一下TensorFlow与PyTorch的异同。搭建神经网络进行训练的步骤基本相同,我们现在开始用MXNet来实现。问题描述拟...原创 2019-01-04 22:19:48 · 1064 阅读 · 2 评论 -
[TensorFlow 填坑之旅]不断更新中...
module ‘tensorflow._api.v1.nn’ has no attribute ‘seq2seq’解决方法:tf.nn.seq2seq.sequence_loss_by_example改为tf.contrib.legacy_seq2seq.sequence_loss_by_example原创 2018-12-18 17:52:42 · 994 阅读 · 0 评论 -
[python3 实用教程]使用ctypes模块调用运行c代码
[python3 实用教程]使用ctypes模块调用运行c代码创建c文件demo.c:#include<stdio.h>long my_app(long a){ long ret = 0; for(long i=0; i<a; i++){ ret += 2; } return(ret);}g...原创 2018-12-18 17:05:05 · 1154 阅读 · 0 评论 -
[TensorFlow深度学习深入]实战二·使用CNN网络识别破解数字验证码
[TensorFlow深度学习深入]实战二·使用CNN网络进行数据验证码破解识别参考博客。在此基础上做了小修改。本博文数据集。代码部分import osos.environ[&quot;KMP_DUPLICATE_LIB_OK&quot;]=&quot;TRUE&quot;import tensorflow as tfimport numpy as npfrom PIL import Imageimport os...原创 2018-12-12 13:05:50 · 1048 阅读 · 3 评论 -
[TensorFlow深度学习深入]实战一·使用embedding_lookup模块对Word2Vec训练保存与简单使用
[TensorFlow深度学习深入]实战一·使用embedding_lookup模块对Word2Vec训练保存与简单使用Word2Vec简介One hot representation用来表示词向量非常简单,但是却有很多问题。最大的问题是我们的词汇表一般都非常大,比如达到百万级别,这样每个词都用百万维的向量来表示简直是内存的灾难。这样的向量其实除了一个位置是1,其余的位置全部都是0,表达的...原创 2018-12-12 11:50:51 · 3257 阅读 · 0 评论 -
[PyTorch小试牛刀]实战六·准备自己的数据集用于训练(基于猫狗大战数据集)
[PyTorch小试牛刀]实战六·准备自己的数据集用于训练(基于猫狗大战数据集)在上面几个实战中,我们使用的是Pytorch官方准备好的FashionMNIST数据集进行的训练与测试。本篇博文介绍我们如何自己去准备数据集,以应对更多的场景。我们此次使用的是猫狗大战数据集,开始之前我们要先把数据处理一下,形式如下datas│└───train│ ││ └───cats│ ...原创 2018-12-23 20:33:20 · 3867 阅读 · 1 评论 -
[PyTorch小试牛刀]实战五·RNN(LSTM)实现逻辑回归对FashionMNIST数据集进行分类(使用GPU)
[PyTorch小试牛刀]实战五·RNN(LSTM)实现逻辑回归对FashionMNIST数据集进行分类(使用GPU)内容还包括了网络模型参数的保存于加载。数据集下载地址代码部分import torch as timport torchvision as tvimport numpy as npimport time# 超参数EPOCH = 5BATCH_SIZE = 1...原创 2018-12-23 12:21:33 · 2139 阅读 · 0 评论 -
[PyTorch小试牛刀]实战四·CNN实现逻辑回归对FashionMNIST数据集进行分类(使用GPU)
[PyTorch小试牛刀]实战四·CNN实现逻辑回归对FashionMNIST数据集进行分类(使用GPU)内容还包括了网络模型参数的保存于加载。数据集下载地址代码部分import torch as timport torchvision as tvimport numpy as npimport time# 超参数EPOCH = 5BATCH_SIZE = 100DOW...原创 2018-12-23 11:28:48 · 2173 阅读 · 2 评论 -
[TensorFlow深度学习入门]实战十二·使用DNN网络实现自动编码器
[TensorFlow深度学习入门]实战十二·使用DNN网络实现自动编码器测试代码import osos.environ["KMP_DUPLICATE_LIB_OK"]="TRUE"import tensorflow as tffrom tensorflow import keras# Helper librariesimport numpy as npimport matp...原创 2018-12-11 17:03:17 · 804 阅读 · 0 评论 -
[深度学习工具]·极简安装Dlib人脸识别库
此博文针对Windows10安装,其他平台可以仿照这个步骤来安装安装Miniconda使用conda指令来安装Dlib库,使用Miniconda与Anaconda都可以,我习惯用Miniconda,简单占用内存小。推荐使用清华源,下载安装,选择合适的平台版本。python==3.6安装dlib以管理员身份进入CMD,执行conda install -c conda-forge ...原创 2019-01-18 17:29:41 · 1867 阅读 · 0 评论 -
[深度学习工具]·百度PaddlePaddle深度强化学习框架PARL
PARL快速入门示例PaddlePaddle PARL 的名字来源于 PAddlepaddle Reinfocement Learning,是一款基于百度 PaddlePaddle 打造的深度强化学习框架。PaddlePaddle PARL 凝聚了百度多年来在强化学习领域的技术深耕和产品应用经验。与现有强化学习工具和平台相比,PaddlePaddle PARL 具有更高的可扩展性、可复现性和可...原创 2019-01-19 00:09:31 · 2745 阅读 · 0 评论 -
[Python3 开发技巧]·如何打乱字典中多个对应数组
[Python3 开发技巧]·如何打乱字典中多个对应数组问题描述当我们把数个对应数组保存到字典中,在我们读取的时候这些数据会按照我们保存的顺序读取出来。如果我们需要打乱顺序,但不改变对应数组的关系时,例如原先位置0对应的各个数组的第一位,我们可以称之为第一行。当我们打乱过后,第一行不一定还在第一行了,因为打乱顺序了,但是那一行不会改变。解决方法我们通过使用pandas库来操作,保持各行...原创 2019-01-21 21:22:20 · 1720 阅读 · 0 评论 -
『Python动手学』PyQt5入门教程
PyQt5相关PyQt5是一套来自Digia的Qt5应用框架和Python的粘合剂。支持Python2.x和Python3.x版本。本教程使用Pyhton 3。Qt库是最强大的GUI支持库的一种。PyQt5的官方主页是www.riverbankcomputing.co.uk/news。是Riverbank Computing开发了PyQt5。PyQt5以一套Python模块的形式来实现功能...原创 2019-06-26 11:57:37 · 34312 阅读 · 7 评论 -
『开发技巧』Python音频处理·PyAudio上手教程(录入与播放声音)
『开发技巧』Python音频处理·PyAudio上手教程(录入与播放声音)当需要使用Python处理音频数据时,使用python读取与播放声音必不可少,下面介绍一个好用的处理音频PyAudio工具包。PyAudio是Python开源工具包,由名思义,是提供对语音操作的工具包。提供录音播放处理等功能,可以视作语音领域的OpenCv。1.简介PyAudio为跨...原创 2019-06-26 10:01:21 · 7360 阅读 · 0 评论 -
[开发技巧]·如何让离线安装Python包
[开发技巧]·如何让离线安装Python包1.问题描述PyPI(Python Package Index)是python官方的第三方库的仓库,所有人都可以下载第三方库或上传自己开发的库到PyPI。官方推荐使用pip包管理器来下载第三方库。一般在联网的状态下,用户可以直接通过 pip install x 指令(x表示需要安装的包)安装到当前python环境中。其实这个指令的执行可以...原创 2019-05-18 21:26:34 · 1001 阅读 · 0 评论 -
[开发技巧]·Python极简实现滑动平均滤波(基于Numpy.convolve)
[开发技巧]·Python极简实现滑动平均滤波(基于Numpy.convolve)1.滑动平均概念滑动平均滤波法(又称递推平均滤波法),时把连续取N个采样值看成一个队列 ,队列的长度固定为N ,每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据.(先进先出原则)把队列中的N个数据进行算术平均运算,就可获得新的滤波结果。N值的选取:流量,N=12;压力:N=4;液面,N=4~12...原创 2019-05-16 11:38:04 · 4560 阅读 · 0 评论 -
[开发技巧]·Python实现信号滤波(基于scipy)
[开发技巧]·Python实现信号滤波(基于scipy)个人网站-->http://www.yansongsong.cnGitHub主页-->https://github.com/xiaosongshine1.背景介绍在深度学习中,有时会使用Matlab进行滤波处理,再将处理过的数据送入神经网络中。这样是一般的处理方法,但是处理起来却有些繁琐,并...原创 2019-05-08 15:04:56 · 3418 阅读 · 0 评论 -
[开发技巧]·Numpy中对axis的理解与应用
[开发技巧]·Numpy中对axis的理解与应用1.问题描述在使用Numpy时我们经常要对Array进行操作,如果需要针对Array的某一个纬度进行操作时,就会用到axis参数。一般的教程都是针对二维矩阵操作axis,当axis为0时,计算方向时列,当axis为1时计算方向为行。但是这样的描述并不能让我们真正理解axis的含义。下面我一个三维Array,来带领大家深入理解ax...原创 2019-04-16 19:36:23 · 312 阅读 · 0 评论 -
[开发技巧]·Numpy广播机制的深入理解与应用
[开发技巧]·Numpy广播机制的深入理解与应用1.问题描述我们在使用Numpy进行数据的处理时,经常会用到广播机制来简化操作,例如在所有元素都加上一个数,或者在某些纬度上作相同的操作。广播机制很方便,但是概念却也有些复杂,可能会让一些初学者感到困惑,在使用过程中,产生一些错误。本文以实战演练的方式来讲解广播机制的概念与应用,不仅仅适用于Numpy,在TensorFlow,PyT...原创 2019-04-21 12:07:39 · 797 阅读 · 0 评论 -
[开发技巧]·h5文件读取失败分析-OSError:Unable to open file (file signature not found)
[开发技巧]·h5文件读取失败分析-OSError:Unable to open file (file signature not found)使用keras在加载网络网络参数的时候出现这个问题File "h5py\h5f.pyx", line 78, in h5py.h5f.openOSError: Unable to open file (file signature not ...原创 2019-04-13 00:11:10 · 38682 阅读 · 13 评论 -
[开发技巧]·ImportError: cannot import name '_validate_lengths'解决方法
[开发技巧]·ImportError: cannot import name '_validate_lengths'解决方法1.问题描述在进行python开发时遇到的这个问题...from numpy.lib.arraypad import _validate_lengthsImportError: cannot import name '_validate_lengths'...原创 2019-04-12 13:26:52 · 11282 阅读 · 8 评论 -
[Python开发工具]·pyinstaller(windows)报错解决(持续更新中)
AttributeError: module ‘enum’ has no attribute ‘IntFlag’解决方法:pip uninstall enum34原创 2019-02-20 11:11:44 · 485 阅读 · 0 评论 -
[TensorFlow深度学习入门]实战十一·用双向BiRNN(LSTM)做手写数字识别准确率99%+
[TensorFlow深度学习入门]实战十一·用双向BiRNN(LSTM)做手写数字识别准确率99%+此博文是我们在完成实战五·用RNN(LSTM)做手写数字识别的基础上使用BiRNN(LSTM)结构,进一步提升模型的准确率,1000steps准确率达到99%。首先我们先熟悉BiRNNtf.nn.static_bidirectional_rnn 函数原型tf.nn.static_bi...原创 2018-12-11 14:19:19 · 1821 阅读 · 0 评论 -
[PyTorch小试牛刀]实战三·DNN实现逻辑回归对FashionMNIST数据集进行分类(使用GPU)
[PyTorch小试牛刀]实战四·DNN实现逻辑回归对FashionMNIST数据集进行分类内容还包括了网络模型参数的保存于加载。数据集下载地址代码部分import torch as timport torchvision as tvimport numpy as np# 超参数EPOCH = 10BATCH_SIZE = 100DOWNLOAD_MNIST = True...原创 2018-12-22 12:10:05 · 3664 阅读 · 0 评论 -
[Keras深度学习浅尝]实战五·使用DNN自编码器实现聚类操作数据降维
[Keras深度学习浅尝]实战五·使用DNN自编码器实现聚类操作数据降维代码部分# TensorFlow and tf.kerasimport tensorflow as tffrom tensorflow import keras# Helper librariesimport osos.environ["KMP_DUPLICATE_LIB_OK"]="TRUE"import ...原创 2018-12-21 16:26:56 · 6827 阅读 · 2 评论 -
[TensorFlow深度学习入门]实战三·使用TensorFlow拟合曲线
[深度学习入门]题目二·使用TensorFlow拟合曲线问题描述拟合y= xx -2 x +3 + 0.1*(-1到1的随机值) 曲线给定x范围(0,3)问题分析在上篇博客中,我们使用最简单的y=wx+b的模型成功拟合了一条直线,现在我们在进一步进行曲线的拟合。简单的y=wx+b模型已经无法满足我们的需求,需要利用更多的神经元来解决问题了。生成数据import nu...原创 2018-11-28 14:49:15 · 4666 阅读 · 0 评论 -
[TensorFlow深度学习入门]实战二·使用TensorFlow拟合直线
[深度学习入门]题目二·使用TensorFlow拟合直线问题描述拟合直线 y =(2x -1) + 0.1(-1到1的随机值)给定x范围(0,3)可以使用学习框架建议使用y = w * x + b 网络模型生成数据import numpy as np import matplotlib.pyplot as pltdef get_data(x,w,b): c,r...原创 2018-11-28 14:06:14 · 1536 阅读 · 0 评论 -
[Python深度学习入门]实战一·Numpy梯度下降求最小值
问题描述:求解y1 = xx -2 x +3 + 0.02*(-1到1的随机值) 与 y2 = 0 的最小距离点(x,y)给定x范围(0,3)不使用学习框架,手动编写梯度下降公式求解,提示:x = x - @*(y1-y2)导数(@为学习率)图像为:代码内容import numpy as np import matplotlib.pyplot as pltx...原创 2018-11-28 11:37:18 · 2797 阅读 · 1 评论 -
[TensorFlow深度学习入门]实战七·简便方法实现TensorFlow模型参数保存与加载(ckpt方式)
[TensorFlow深度学习入门]实战七·简便方式实现TensorFlow模型参数保存与加载TensorFlow模型训练的好网络参数如果想重复高效利用,模型参数保存与加载是必须掌握的模块。本文提供一种简单容易理解的方式来实现上述功能。参考博客地址模型保存代码:import tensorflow as tfx = tf.placeholder(dtype=tf.float32,sh...原创 2018-12-02 17:47:31 · 1624 阅读 · 0 评论 -
[python3 Numpy使用技巧]一条语句实现numpy数组relu激活函数
一条语句实现numpy数组relu激活函数就是实现numpy数组中,小于零的元素赋值零。类似于神经网络里的激活函数,请看代码:Idata = 1 * (Idata > 0) * Idata可以分解一下temp = Idata > 0temp = 1 * tempIdata = temp * Idata自己编程的时候发现的,python如此强大呀!!!...原创 2018-11-26 15:10:14 · 4532 阅读 · 4 评论 -
[TensorFlow深度学习入门]实战四·逻辑回归鸢尾花进行分类(对比均方根误差与softmax交叉熵误差区别)
[TensorFlow深度学习入门]实战四·逻辑回归鸢尾花进行分类代码使用均方根误差import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport tensorflow as tffile_path = &amp;quot;iris.csv&amp;quot;df_iris = pd.read_csv(file_path, ...原创 2018-11-29 01:12:09 · 2857 阅读 · 1 评论 -
[PyTorch小试牛刀]实战二·实现逻辑回归对鸢尾花进行分类
[PyTorch小试牛刀]实战二·实现逻辑回归对鸢尾花进行分类代码import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport torch as tfrom torch.autograd import Variable as varfile_path = "pyTorchTry/DNN/i...原创 2018-11-29 00:28:35 · 4048 阅读 · 1 评论 -
[深度学习工具]·FoolNLTK 中文处理工具包使用教程
FoolNLTK中文处理工具包近日 GitHub 用户 wu.zheng 开源了一个使用双向 LSTM 构建的中文处理工具包,该工具不仅可以实现分词、词性标注和命名实体识别,同时还能使用用户自定义字典加强分词的效果。特点可能不是最快的开源中文分词,但很可能是最准的开源中文分词基于BiLSTM模型训练而成包含分词,词性标注,实体识别, 都有比较高的准确率用户自定义词典可训练自己的模...原创 2018-11-24 15:29:00 · 2579 阅读 · 0 评论 -
[python3 Numpy 填坑之旅]使用Numpy广播机制实现数组与数字比较大小的问题
在使用Numpy开发的时候,遇到一个问题,需要Numpy数组的每一个元素都与一个数进行比较,返回逻辑数组。我们在使用Numpy计算是可以直接使用数组与数字运算,十分方便。当我尝试使用广播机制来处理比较问题的时候就成问题,下面是代码:在这里插入代码片...原创 2018-11-24 09:44:55 · 2938 阅读 · 0 评论 -
[Python工具]pdf表格提取camelot安装教程
pdf表格提取camelot安装教程经过测试,macos 与win10 均可以用一下方式安装Camelot: 一个友好的PDF表格数据抽取工具一个python命令行工具,使任何人都能很轻松的从PDF文件中抽取表格数据。怎样使用Camelot使用Camelot从PDF文档提取数据非常简单.Camelot允许你通过调整设置项来精确控制数据的提取过程.可以根据空白和精度指标来判断坏的表格,...原创 2018-11-10 12:59:41 · 7412 阅读 · 3 评论 -
[开发技巧]·安卓手机开发深度学习简易教程(基于Keras)
本教程基于安卓手机平台,在PyDroid3软件上,使用Python3语言配合Keras框架开发深度学习。本文章主要涉及在手机上开发环境的搭建,以及简单的示例代码,如果想深入研究开发,还需要读者自己花些功夫了。不废话,开始教程。。准备工作1、手上需要有一个安卓手机,最近两年发布的机型都可以,性能不要太弱,因为跑深度学习代码还是很吃性能的。我用的是小米8,跑cnn长时间会发热。2、下载PyD...原创 2018-10-21 22:14:03 · 6423 阅读 · 0 评论