
开发技巧
文章平均质量分 69
小宋是呢
作者简介:深度学习开发分享博主。全网粉丝3W+,阅读量200W+。
优快云深度学习博客专家以及微信公众号《简明AI》主要作者。创作内容是基于深度学习的理论学习与应用开发技术分享,致力于最简单明了AI技术分享与最实用AI应用教程。
撰写并发表深度学习论文两篇,获得国家级及省级一等奖奖项八次,以第一作者授权实用新型及发明专利共计十余项,天池与BDCI比赛Top10奖项数次。
在某公司担任算法工程师,从事计算机视觉及时序序列数据的检测识别;深度学习工程化经验丰富,擅长针对新算法研究与应用,包括对模型调优、模型转化及多平台部署等。
展开
-
『实用技巧』解决mac系统安装inode后报错:libCoreUtils.dylib
0x01:引子最近在MacBookAir实用iNode遇到“提示 “libCoreUtils.dylib”将对您的电脑造成伤害”,导致inode无法正常使用的问题。如图所示:0x02:解决参考网上找到了解决方法:inode for mac 苹果电脑mac系统安装inode后报错 - 知了社区步骤如下:是SIP问题。SIP在某次更新系统后被开启了,需要将其关闭在我们开发过程中,有时候我们安装一些工具软件需要将文件拷贝到系统限制更改的文件夹中,甚至有时需要更改系统限制的文件.原创 2021-10-27 18:58:23 · 6075 阅读 · 10 评论 -
『开发技巧』全网最详尽手把手教你在Ubuntu安装搜狗输入法
最近在使用Ubuntu进行开发,用惯了搜狗输入法,所以尝试在Ubuntu上安装使用。发现网络上的教程都不够完整,所以把自己探索安装完整过程记录下来。0x01:安装fcitx命令行执行sudo apt-get install fcitx fcitx-table-wbpy0x02:设置系统输入法搜狗输入法已支持Ubuntu1604、1804、1910、2004、2010各系统安装步骤可能略有不同,以Ubuntu1804为例。1、添加中文语言支...原创 2021-05-25 10:43:10 · 1832 阅读 · 6 评论 -
『开发技巧』gitbook从入门到放弃(指令错误解决)
0x01:引子笔者安装此篇文章[GitBook 从懵逼到入门]的方法在M1版MacBookAir配置了gitbook环境。在执行:gitbook init报错:TypeError: cb.apply is not a functionInstalling GitBook 3.2.3 SOLINK_MODULE(target) Release/.node CXX(target) Release/obj.target/fse/fsevents.o SOLINK_MODUL...原创 2021-04-28 16:24:49 · 1544 阅读 · 3 评论 -
『开发技巧』M1芯片MacOS安装brew教程
0x01:引子Homebrew是一款Mac OS平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径的情况,十分方便快捷。笔者在使用M1芯片的MacBookAir安装时,遇到一些问题。通过对问题的思考分析与修改尝试进行了解决,记录下来供读者们参考。0x02:历程命令行执行安装指令:/bin/zsh -c "$(curl -fsSL https://gitee.com/huwei1024...原创 2021-04-25 20:08:03 · 2204 阅读 · 5 评论 -
『跟我做AI工程化』使用Python原生实现PyTorch的Transforms数据变换操作[已完成:Resize、ToTensor与normalize]
0x01:引子在应用PyTorch训练好的模型时,为了保证模型的准确稳定性,需要保持与训练时相同的操作。原创 2021-04-21 18:31:18 · 1055 阅读 · 1 评论 -
『开发技巧』解决Python使用pandas读取xlsx文件报错“ImportError: Missing optional dependency ‘xlrd‘”的问题
0x01:引子笔者在使用Mac进行Python开发时使用pandas读取xlsx文件遇到这个错误:ImportError: Missing optional dependency 'xlrd'. Install xlrd >= 1.0.0 for Excel support Use pip or conda to install xlrd.看似简单直接安装xlrd即可,实则在操作过程中并不顺利,又报出其他错误。笔者在这里分享一下自己遇到问题及解决步骤。0x02:历程按照..原创 2021-04-17 10:02:52 · 9117 阅读 · 4 评论 -
『开发技巧』全网最详尽解决Ubuntu安装NVIDIA驱动报错“nvidia-drm”或“nvidia-modeset”的方法
An NVIDIA kernel module 'nvidia-modeset' appears to already be loaded in your kernel.原创 2021-04-15 14:06:02 · 10534 阅读 · 1 评论 -
『开发技巧』全网最详尽Ubuntu中VSCode命令行间隔过大问题
0x01:引子在Ubuntu使用VSCode时,如果系统语言设置为中文,VSCode中命令行就会出现字体间隔过大,影响使用的问题。如下所示:0x02:解决方法想解决这个问题很简单,只需给菜小宋点个赞,然后修改字体即可^^修改字体方法如下所示:依次点击:File->Preferences->Settings即可进入设置选项,如下所示:搜素框内输入:“font”,找到:“Editor:Font Family”菜单。将里面其他内容删除,仅保...原创 2021-04-15 10:26:29 · 758 阅读 · 1 评论 -
『开发技巧』python :与-> 操作来给函数参数增加元信息
0.引子写好了一个函数,然后想为这个函数的参数增加一些额外的信息,这样的话其他使用者就能清楚的知道这个函数应该怎么使用。1.方法使用函数参数注解是一个很好的办法,它能提示程序员应该怎样正确使用这个函数。 例如,下面有一个被注解了的函数:def add(x:int, y:int) -> int: return x + ypython解释器不会对这些注解添加任何的语义。它们不会被类型检查,运行时跟没有加注解之前的效果也没有任何差距。 然而,对于那些阅读源码的人来讲..原创 2020-08-25 11:31:48 · 579 阅读 · 0 评论 -
『深度应用』对CenterNet的一些思考与质疑·对比与U版YoloV3速度与精度
0.引子笔者很喜欢CenterNet极简的网络结构,CenterNet只通过FCN(全卷积)的方法实现了对于目标的检测与分类,无需anchor与nms等复杂的操作高效的同时精度也不差。同时也可以很将此结构简单的修改就可以应用到人体姿态估计与三维目标检测之中。后面一些针对CenterNet结构应用于其他任务,也取得不错的效果,比如人脸检测CenterFace以及目标追踪CenterTrack与FairMot。这些内容后面等笔者研习过后再补充,后面应该会做一个类CenterNet结构总结对比,感兴.原创 2020-07-21 19:19:02 · 6324 阅读 · 11 评论 -
『深度应用』YoloV5 RTX2080Ti TX2 Nano AGX TensorRT与PyTorch速度对比
1.概述此次实验是为了探究YoloV5在RTX2080Ti平台上使用TensorRT对于模型推理的加速效果,同时也比对一下RTX2080Ti平台上GPU对于i7-8700CPU的加速。照例先提出来实验硬件环境:系统:Ubuntu 18.04.3LTS CPU:Intel® Core™ i7-8700 CPU @ 3.20GHz × 12 GPU:GeForce RTX 2080Ti Cuda:10.1 Pytorch:1.5.0 TensorRT:7.1.02....原创 2020-08-11 16:50:40 · 5278 阅读 · 8 评论 -
『开发技巧』解决RTX 2060 TensorFlow CUDNN_STATUS_INTERNAL_ERROR错误
在使用RTX 2060开发TensorFlow 1x 版本遇到一个错误,如下:2020-07-20 22:08:55.555961: E tensorflow/stream_executor/cuda/cuda_dnn.cc:329] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR2020-07-20 22:08:55.571109: E tensorflow/stream_executor/cuda/cuda_dnn.cc:3.原创 2020-07-20 22:20:48 · 712 阅读 · 0 评论 -
[开发技巧]·Python list 赋值探索
Python中关于对象复制有三种类型的使用方式,赋值、浅拷贝与深拷贝。他们既有区别又有联系,刚好最近碰到这一类的问题,研究下。一、赋值在python中,对象的赋值就是简单的对象引用,这点和C++不同。如下:a = [1,2,3,"hello",["python","C++"]]b = aprint a==b #True这种情况下,b和a是一样的,他们指向同一片内存,b不过...原创 2020-04-03 10:09:22 · 307 阅读 · 0 评论 -
『开发技术』解决 MacOS command not found: conda (zfh终端)
0. 问题描述最近升级了macos系统,安装miniconda遇到问题,在终端输入 conda 指令报错:command not found: conda笔者使用 指令sudo vim ~/.bash_profile 发现.bash_profile已经配置好conda path,内容如下:(base) xshine@ShinedeMBP-742f ~ % sudo vim .b...原创 2019-11-02 12:32:52 · 1306 阅读 · 0 评论 -
『开发技术』Ubuntu与Windows如何查看CPU&GPU&内存占用量
0 序·简介在使用Ubuntu或者Windows执行一些复杂数据运算时,需要关注下CPU、GPU以及内存占用量,如果数据运算超出了负荷,会产生难以预测的错误。本文将演示如何用简单地方式,实时监控Ubuntu或者Windows的CPU、GPU以及内存占用量,教会大家如何实时监控电脑状态。水平有限,笔者在这里仅仅使用最简便的方式来实现,抛砖引玉,以便于小白用户也能掌握。大佬们看不上莫要喷...原创 2019-10-09 15:12:56 · 1782 阅读 · 3 评论 -
『开发技术』Python通过字符串调用函数(getattr方法)
最近在使用python开发的过程中,想要实现通过字符串实现对函数的访问。在网上搜了一些方法,发现都不够简洁。最终笔者通过python内置的getattr方法,实现了这个功能,方法非常简单,在这里分享一下。首先是对getattr方法的简单介绍Python getattr() 函数介绍描述getattr()函数用于返回一个对象属性值。语法getattr 语法:...原创 2019-09-27 15:50:33 · 1723 阅读 · 0 评论 -
『开发技术』解决TypeError: Cannot cast Index to dtype M8[D]
原代码df.columns = df.columns.astype('M8[D]')修改为df.columns = df.columns.astype('M8[ns]')原创 2019-09-04 18:58:40 · 2277 阅读 · 0 评论 -
『开发技术』GPU训练加速原理(附KerasGPU训练技巧)
0.深入理解GPU训练加速原理我们都知道用GPU可以加速神经神经网络训练(相较于CPU),具体的速度对比可以参看我之前写的速度对比博文:[深度应用]·主流深度学习硬件速度对比(CPU,GPU,TPU)GPU是如何加速的呢?我打算从两个方面来解答:单个GPU较于CPU加速:在训练网络中,其实大量的运算资源都消耗在了数值计算上面,大部分网络训练的过程都是1.计算loss,2.根据l...原创 2019-08-13 16:03:29 · 6960 阅读 · 0 评论 -
『开发技术』Ubuntu支持exfat格式方法
推荐u盘使用exfat格式,为什么呢?两个原因:1、三大主流操作系统(Linux、Mac、Windows)都支持exfat格式。2、exfat支持大于4G的文件。在ubuntu下,由于版权的原因(据说),默认不支持exfat格式的u盘,不过可以很方便就能添加对exfat的支持:对于ubuntu 14.04以上版本,直接运行下面的命令就可以了:sudo apt-get ins...原创 2019-08-08 09:44:16 · 3664 阅读 · 0 评论 -
『开发技术』Docker开发教程(一)安装与测试(Windows 家庭版)
0.前言针对其他系统和版本,Docker都很容易安装,可以参考官方教程:https://docs.docker.com/docker-hub/由于Windows10家庭版无法安装docker,因此在正常安装前需要做一点非常规手段,这样才能保证成功进行docker的安装。家庭版是可以通过脚本开启Hyper-V来安装Docker Desktop的。1.安装1.开启Hyper-V...原创 2019-07-15 15:42:06 · 573 阅读 · 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 · 39315 阅读 · 13 评论 -
[开发技巧]·keras如何冻结网络层
[开发技巧]·keras如何冻结网络层在使用keras进行进行finetune有时需要冻结一些网络层加速训练keras中提供冻结单个层的方法:layer.trainable = False这个应该如何使用?下面给大家一些例子1.冻结model所有网络层base_model = DenseNet121(include_top=False, weights="imagene...原创 2019-04-12 23:34:00 · 2856 阅读 · 1 评论 -
[开发技巧]·HTML简易实现检测输入已完成
APICloud简易实现检测输入已完成使用oninput="onInput(event)"检测是否在输入使用onporpertychange="onChange(event)"检测是否内容发生改变使用onBlur="finnishInput(event)"检测是否失去焦点可以通过先检测是否在输入,记下状态,如果上次在输入信息,然后失去焦点,则可以判断为输入已完成。HTML代码如下:...原创 2018-11-26 11:10:45 · 1157 阅读 · 0 评论 -
[开发技巧]·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 · 11434 阅读 · 8 评论 -
[开发技巧]·AttributeError: module 'pywt' has no attribute 'wavedec'解决方法
[开发技巧]·AttributeError: module 'pywt' has no attribute 'wavedec'解决方法1.卸载pywtpip uninstall pywt2.安装PyWaveletspip install PyWaveletshope this helps原创 2019-04-12 00:32:53 · 5406 阅读 · 5 评论 -
[开发技巧]·深度学习使用生成器加速数据读取与训练简明教程(TensorFlow,pytorch,keras)
[开发技巧]·深度学习使用生成器加速数据读取与训练简明教程(TensorFlow,pytorch,keras)1.问题描述在深度学习里面有句名言,数据决定深度应用效果的上限,而网络模型与算法的功能是不断逼近这个上限。由此也可以看出数据的重要程度。在进行深度学习的开发中,我们在建模与训练之前很重要的部分就是数据特征分析与读取,这篇文章的主要内容是数据的读取与组织,其他的方面等以后在...原创 2019-04-11 17:42:05 · 4947 阅读 · 2 评论 -
[开发技巧]·TensorFlow中numpy与tensor数据相互转化(支持tf1.x-tf2.x)
[Python3 填坑之旅]2·TensorFlow中Numpy与Tensor数据相互转化问题描述在我们使用TensorFlow进行深度学习训练时,很多时候都是与Numpy数据打招呼,例如我们csv或者照片数据等。但是我们都知道,TensorFlow训练时都是使用Tensor来存储变量的,并且网络输出的结果也是Tensor。一般情况下我们不会感受到Numpy与Tensor之间的区别,因...原创 2018-12-11 15:31:58 · 48608 阅读 · 21 评论 -
[开发技巧]·安卓手机开发深度学习极简教程(基于Keras)
[开发技巧]·安卓手机开发深度学习极简教程(基于Keras)个人主页–>https://xiaosongshine.github.io/本教程基于安卓手机平台,在PyDroid3软件上,使用Python3语言配合Keras框架开发深度学习。本文章主要涉及在手机上开发环境的搭建,以及简单的示例代码,如果想深入研究开发,还需要读者自己花些功夫了。不废话,开始教程。。- 准备工作...原创 2019-03-26 18:07:36 · 670 阅读 · 0 评论 -
[开发技巧]·Numpy中对axis的理解与应用
[开发技巧]·Numpy中对axis的理解与应用1.问题描述在使用Numpy时我们经常要对Array进行操作,如果需要针对Array的某一个纬度进行操作时,就会用到axis参数。一般的教程都是针对二维矩阵操作axis,当axis为0时,计算方向时列,当axis为1时计算方向为行。但是这样的描述并不能让我们真正理解axis的含义。下面我一个三维Array,来带领大家深入理解ax...原创 2019-04-16 19:36:23 · 356 阅读 · 0 评论 -
[开发技巧]·AdaptivePooling与Max/AvgPooling相互转换
[开发技巧]·AdaptivePooling与Max/AvgPooling相互转换个人网站-->http://www.yansongsong.cn1.问题描述自适应池化Adaptive Pooling是PyTorch的一种池化层,根据1D,2D,3D以及Max与Avg可分为六种形式。自适应池化Adaptive Pooling与标准的Max/AvgPooling区别在于,...原创 2019-04-22 16:17:52 · 12519 阅读 · 16 评论 -
『开发技巧』Python音频处理·PyAudio上手教程(录入与播放声音)
『开发技巧』Python音频处理·PyAudio上手教程(录入与播放声音)当需要使用Python处理音频数据时,使用python读取与播放声音必不可少,下面介绍一个好用的处理音频PyAudio工具包。PyAudio是Python开源工具包,由名思义,是提供对语音操作的工具包。提供录音播放处理等功能,可以视作语音领域的OpenCv。1.简介PyAudio为跨...原创 2019-06-26 10:01:21 · 7479 阅读 · 0 评论 -
[开发技巧]·如何让离线安装Python包
[开发技巧]·如何让离线安装Python包1.问题描述PyPI(Python Package Index)是python官方的第三方库的仓库,所有人都可以下载第三方库或上传自己开发的库到PyPI。官方推荐使用pip包管理器来下载第三方库。一般在联网的状态下,用户可以直接通过 pip install x 指令(x表示需要安装的包)安装到当前python环境中。其实这个指令的执行可以...原创 2019-05-18 21:26:34 · 1052 阅读 · 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 · 4787 阅读 · 0 评论 -
[开发技巧]·pandas如何保存numpy元素
[开发技巧]·pandas如何保存numpy元素1.问题描述在开发的过程中遇到一个问题,就是需要把numpy作为pandas的一个元素进行保存,注意不是作为一列元素。但是实践的过程中却不顺利,会报错,现在我解决了这个问题,并且把心得和理解分享出来,希望能帮到后来人。2.开发实战1.新建一些伪数据,用于保存import pandas as pdimport nump...原创 2019-05-09 23:29:22 · 2272 阅读 · 0 评论 -
[开发技巧]·谷歌使用教程
教程地址-->http://www.yansongsong.cn/details-9.html原创 2019-05-06 21:28:11 · 338 阅读 · 0 评论 -
[开发技巧]·TopN指标计算方法
[开发技巧]·TopN指标计算方法1.概念介绍在图片分类的中经常可以看到Top-1,Top-5等TopN准确率(或者时错误率)。那这个TopN是什么意思呢?首先Top-1准确率最好理解,就是我们用argmax从网络输出取到的预测index与真实index的准确率。Top-5准确率就是指从网络输出取到的预测概率最大5个index与真实的index进行比对,5个之中任意一个比对成功...原创 2019-05-13 20:00:18 · 1833 阅读 · 0 评论 -
[开发技巧]·Python实现信号滤波(基于scipy)
[开发技巧]·Python实现信号滤波(基于scipy)个人网站-->http://www.yansongsong.cnGitHub主页-->https://github.com/xiaosongshine1.背景介绍在深度学习中,有时会使用Matlab进行滤波处理,再将处理过的数据送入神经网络中。这样是一般的处理方法,但是处理起来却有些繁琐,并...原创 2019-05-08 15:04:56 · 3486 阅读 · 0 评论 -
[开发技巧]·树莓派极简安装OpenCv
因为最近在开发使用树莓派+usb摄像头识别模块,打算用OpenCv,发现网上的树莓派OpenCv安装教程都过于繁琐占用内存大,我经过自己的实验,发现出了一种非常简易快捷的方式,网速OK的话,十分钟能安装完成。我用的环境:树莓派3b+Python3.5.4树莓派官方操作系统以下是安装步骤:树莓派相关库安装:sudo apt-get updatesudo apt-get ins...原创 2018-10-16 19:39:20 · 15588 阅读 · 46 评论