![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
机器学习
ACE-Mayer
这个作者很懒,什么都没留下…
展开
-
h-swish激活函数及TensorFlow实现
h-swish激活函数出自MobileNetV3论文(论文链接:https://arxiv.org/abs/1905.02244),该激活函数为了近似swish激活函数。swish激活函数具有:无上界、有下界、平滑、非单调等特点,可使神经网络层具有更丰富的表现能力。但swish函数有个缺点,计算量比较大,其函数表达式如下:式中贝塔为可训练参数。为了适应轻量级网络使用,MobileNetV3作者提出了h-swish函数,该函数使用常见的算子组合而成,因此几乎所有框架都可实现,且在对效果影响不大的条件下使原创 2021-09-10 12:00:08 · 2527 阅读 · 0 评论 -
RuntimeError: Failed to process string with tex because latex could not be found
按照这篇文章方法操作:pip install latexsudo apt-get install dvipngsudo apt-get install -y texlive texlive-latex-extra texlive-latex-recommended之后,又提示错误:RuntimeError: latex was not able to process the following string: b‘lp‘继续安装:sudo apt install texlive-latex原创 2021-08-18 23:36:11 · 2397 阅读 · 0 评论 -
RemoveError: ‘setuptools‘ is a dependency of conda and cannot be removed from conda‘s operating envi
今天在windows上用conda创建虚拟环境,然后conda install nb_conda报错:RemoveError: 'requests' is a dependency of conda and cannot be removed from conda's operating environment.RemoveError: 'setuptools' is a dependency of conda and cannot be removed from conda's operating原创 2021-08-01 19:34:50 · 1652 阅读 · 1 评论 -
tf.one_hot()函数
one_hot(indices, depth, on_value=None, off_value=None, axis=None, dtype=None, name=None) Returns a one-hot tensor.tf.one_hot()函数是将input转化为one-hot类型数据输出,举例:classes = 3labels = tf.constant([0,1,0,3,1,2]) output = tf.one_hot(labels,classes)output&原创 2021-07-08 22:52:51 · 3532 阅读 · 0 评论 -
python:图片数据矩阵的不同维度进行翻转
实现方法利用numpy数组操作方法:原图:上下颠倒:image = image[::-1,:,:]效果展示:左右颠倒:image = image[:,::-1,:]效果展示:RGB颠倒:image = image[:,:,::-1]效果展示:有点童话世界的感觉!...原创 2020-04-07 16:03:25 · 1495 阅读 · 0 评论 -
jupyter notebook中显示图片的一种方法
如下:%%html<img src='autoimg.jpg', width=400, height=240>其它方法,调用图像处理的三方库进行显示,例如例如常用的PIL、opencv、matplotlib、scikit-image等等。原创 2021-06-17 16:17:16 · 2509 阅读 · 0 评论 -
caffe版SSD配置注意问题
论文作者在原版caffe基础上加上了一些别的操作和方法来实现SSD,所以配置caffe时遇到了很多官方caffe 没有的问题,例如src/caffe/util/中的math_functions.cpp文件中的caffe_rng_uniform函数写的不完善,不注释掉’CHECK_LE(a, b)’,则会出现Check failed: a <= b <0 vs -1.19209e-007>错误,注释掉的话,后面训练会出现Data layer prefetch queue empty错误,网上原创 2021-06-03 00:19:12 · 209 阅读 · 2 评论 -
Python2启动jupyter lab报错
错误信息:Could not decode ‘\xe6\x9c\xaa\xe5\x91\xbd\xe5\x90\x8d‘ for unicode trait ‘untitled_notebook‘ of a LargeFileManager instance.解决办法:edit /usr/local/anaconda2/lib/python2.7/site.py file, change the function def setencoding line 481 from if 0 to if 1,原创 2021-06-02 17:58:22 · 449 阅读 · 0 评论 -
pandas学习笔记---------时间间隔运算
(1)求两个时间的间隔switch_fridge为字符串格式的日期时间列表#按秒计print((pd.Timestamp(switch_fridge[4002]) - pd.Timestamp(switch_fridge[4000])).total_seconds())print((pd.Timestamp(switch_fridge[4002]) - pd.Timestamp(switch_fridge[4000])).seconds)#按天计print((pd.Timestamp(switc原创 2021-05-07 10:39:02 · 989 阅读 · 0 评论 -
pandas学习笔记-------时间戳转日期时间型数据
有些项目中时间是以时间戳格式记录的,使用时需要先转换为日期时间型数据,pandas中to_datetime()方法可以很方便实现这个要求:df_2['time'] = pd.to_datetime(df_2['time'],unit='s',origin=pd.to_datetime('1970-01-01 08:00:00'))注意:(1)起始时间要根据实际情况设置,少数情况可能不是’1970-01-01 08:00:00’;(2)单位也要格外注意,默认的单位不是’s’,而很多数据的时间戳单位是原创 2021-04-27 09:17:04 · 1966 阅读 · 0 评论 -
GoogleNet总结
目录(1)GoogleNet(InceptionV1)(2)GoogleNet中的结构单元(3)InceptionV2(BN-Inception)(4)InceptionV3(分解卷积)(5)InceptionV4,Inception-ResNet(1)GoogleNet(InceptionV1)GoogleNet是用以上的结构单元搭建的,含有两个辅助输出分支。训练时,辅助输出的结果也按一定比例加到损失函数中,而推理时则只留主输出,去掉辅助输出分支后,网络计算量大大降低。辅助输出分支的存在提高了网络训练原创 2021-04-12 11:17:50 · 378 阅读 · 0 评论 -
感受野知识点总结
VGG论文中提出的几个结论:原创 2021-04-11 15:26:26 · 432 阅读 · 0 评论 -
Pytorch中nn.Conv2d的dilation
dilation原文解释如下:controls the spacing between the kernel points; alsoknown as the à trous algorithm. It is harder to describe, but this link_has a nice visualization of what :attr:dilation does.原文中也说描述起来有些难度,就是卷积核的各元素间隔开,默认间隔大小为1。如下图所示:...原创 2021-04-06 22:31:41 · 1648 阅读 · 0 评论 -
tensorflow2.2中定义的ResNet和ResneXt中的bottleneck结构
目录1、论文中提出的ResNet网络结构2、tensorflow中的三种ResNet或ResNeXt结构单元2.1、第一种结构单元2.2 第二种结构单元2.3 第三种结构单元1、论文中提出的ResNet网络结构tensorflow的Keras高级API中定义了50,101和152层的ResNet和ResNeXt,其中的bottlenect结构的实现在后面介绍。ResNet论文中提出的50,101和152层结构如下图所示:可以发现,ResNet网络结构中的五个stage分别将feature map尺原创 2021-04-05 17:29:58 · 1308 阅读 · 1 评论 -
记录Ubuntu18.04-cuda10.1-opencv4配置caffe过程
目录1、安装前环境2、准备工作2.1 必要依赖2.2 安装python3-numpy2.3 安装HDF53、安装caffe3.1 下载caffe3.2 编辑Makefile.config3.2.1 取消下面几行注释3.2.2 修改Python版本3.2.3 CUDA_ARCH修改3.2.4 将以下几行注释去掉,并修改值为13.2.5 opencv4相关的修改3.3 进行编译4、测试5、编译pycaffe1、安装前环境cuda10.1Ubuntu18.04Python==3.7opencv42原创 2021-04-02 16:16:18 · 1224 阅读 · 5 评论 -
TypeError: ufunc ‘true_divide‘ output (typecode ‘d‘) could not be coerced to provided outp
图片预处理经常用到的一句代码:…… if mode == 'tf': x /= 127.5 x -= 1. if x.ndim == 3: x = np.expand_dims(x, 0) return x if mode == 'custom': x /= 255 if x.ndim == 3: x = np.expand_dims(x原创 2021-04-01 16:19:32 · 9383 阅读 · 1 评论 -
BF16格式数据
BF16是一种相对较新的浮点数格式,又叫BFloat16或Brain Float16,可以说是专为深度学习创造的。深度学习中一般不需要FP64,FP32这种高精度的浮点格式。虽然这两种浮点格式数据精度高,但也增加了存储成本和处理过程中的时间成本。如果有一种数据格式能解决FP64,FP32这两种数据格式的这两个缺点,同时又能满足一定的精度要求,那无疑会大大提高深度学习模型的推理速度和部署灵活性。这种数据格式就是BF16,使用BF16算法的预测精度与FP32相似,但不如FP32精确(谷歌曾说过,这是因为神经原创 2021-03-31 22:33:42 · 13981 阅读 · 0 评论 -
Pytorch中loss计算解析
下面是一段Pytorch分类案例代码:running_loss = 0.0running_corrects = 0# Iterate over data.for inputs, labels in dataloaders[phase]: inputs = inputs.to(device) labels = labels.to(device) # zero the parameter gradients optimizer.zero_grad() # forward #原创 2021-03-28 16:52:41 · 826 阅读 · 0 评论 -
yolov4中的route和shortcut层
1、shortcut层shortcut层的输入层一般是两个(目前还没出现多余两个的情况),实现两个张量相加,例如:对应的cfg文件中的层为:#4[convolutional]batch_normalize=1filters=64size=1stride=1pad=1activation=mish#5[convolutional]batch_normalize=1filters=32size=1stride=1pad=1activation=mish#6[convol原创 2021-03-23 23:00:58 · 2499 阅读 · 1 评论 -
修改pytorch和Keras预训练模型路径
目录1、Pytorch预训练模型路径修改2、Keras修改预训练模型位置1、Pytorch预训练模型路径修改Pytorch安装目录下有一个hub.py,改文件指定了预训练模型的加载位置。该文件存在于xxx\site-packages\torch,例如我的存在于“C:\ProgramData\Miniconda3\Lib\site-packages\torch”。打开hub.py文件,找到load_state_dict_from_url函数,其中第二个参数model_dir用于指定权重文件路径:mod原创 2021-03-23 16:16:46 · 1056 阅读 · 0 评论 -
特征金字塔网络总结
CV方向的特征金字塔经历了Featurized image pyramid、Single feature map、Pyramidal feature hierarchy和Feature Pyramid Network(YOLOv3)发展过程。到目前,涌现出了像GFM(ThunderNet)和EFM(CSPNet)等表现更优秀的特征金字塔模型....原创 2021-03-21 10:12:25 · 3013 阅读 · 0 评论 -
牛顿法和最优化
牛顿法最早的应用是求解方程的根,先来张直观的动图说明求解过程:开始时,先找一个离f(x)零点比较近的点x0,然后做出穿过(x0,f(x0)),且斜率为f(x0)’的直线(即f(x)在x0处的切线),该直线与x轴交点的位置将比x0更接近f(x)零点;然后重复上一步的操作,这样得到的f(x)的切线与x轴交点将会离f(x)零点越来越近,当误差或迭代次数达到一定条件,我们就得到了满足需要精度的f(x)=0解。下一个点与当前点的关系满足:Xn+1 = xn - f(xn)/f’(xn) 【1】*原创 2021-03-15 10:29:02 · 354 阅读 · 0 评论 -
常见的类别型数据列编码方法汇总
目录1、OneHotEncoder2、 LabelEncoder3、LabelBinarizer4、pandas.get_dummiespython数据分析和建模过程中,常见的类别型数据编码方法有OneHotEncoder, LabelEncoder , LabelBinarizer,pandas.get_dummies。下面逐一介绍。1、OneHotEncoderOneHotEncoder既可以对字符串型变量或数值型变量进行编码(旧版可能只能对数值型变量进行编码)import pandas as原创 2021-03-12 14:48:12 · 1676 阅读 · 0 评论 -
TypeError: cannot perform std with type Sparse[float64, 0.0]
使用pandas.get_dummies()函数处理完,再用X[i].std()处理出现如题所示错误,原因是pandas.get_dummies()中的参数sparse被设置成了True,std()函数不能处理稀疏矩阵。默认情况下,pandas.get_dummies()的sparse参数是False,转换时保持默认即可。...原创 2021-03-12 14:01:39 · 397 阅读 · 0 评论 -
多种方法判断某个值是否在一个有序的二维数组中
1、问题描述最近遇到一个问题,给出一个有序的二维数组(方阵)(有序指的是对于每一行和每一列元素都是逐渐增大的),然后让你用最快的方法判断某个值是否在这个数组中,如果存在则返回True,反之返回False。例如给出的有序数组如下所示:array = [[1,2,3], [4,5,6], [7,8,9]]让你判断4是否出现在数组中。2、不考虑矩阵特点的算法(三种)解决这个问题的方法有很多,如果不考虑二维方阵本身是有序的特点,那你至少应该想到以下方法:def find原创 2021-03-11 10:26:45 · 981 阅读 · 0 评论 -
Xgboost自定义目标函数
(1)xgboost中自定义目标函数的参数传入顺序自定义的xgboost目标函数传入的第一个参数是预测值,第二个参数是真实值,这个顺序与gridSearchCV函数的scorning参数对应自定义目标函数正好相反,需要注意。(2)示例及用法举几个xgboost中自定义目标函数: def customedscore(preds, dtrain): label = dtrain.get_label() pred = [int(i>=0.5) for i in preds]原创 2021-03-07 17:01:01 · 1426 阅读 · 0 评论 -
python同时随机排序多个数组
方法一: np.random.shuffle (无返回值,直接将原数组重新随机排序)state = np.random.get_state()np.random.shuffle(train)np.random.set_state(state)np.random.shuffle(label)方法二: 返回一个打乱的index列表,可将其用于多个数组的按同一随机顺序进行排序shuffle_ix = np.random.permutation(np.arange(len(train_data)))原创 2021-03-03 16:13:49 · 578 阅读 · 2 评论 -
numpy数组展开方法
res = arr.flatten(order="C") #按行展开 C风格展开res = arr.flatten(order="F") # 按列展开, F 风格展开res = arr.ravel() # 按行展开 C风格展开res = arr.ravel(order=‘F‘) # 按列展开 ,F 风格原创 2021-03-03 16:03:57 · 2108 阅读 · 1 评论 -
“ValueError: zero-size array to reduction operation maximum which has no identity”解决方法
出现如题错误原因是要处理的numpy数组为空(size=0),不适应于当前操作,解决办法:找到出错的那行代码,检查相关numpy操作的对象数组是否为空。需要注意的是,有些三方包底层也是调用的numpy方法(如matplotlib和pandas中的一些方法),这个时候即便是没直接使用numpy中的方法也可能出现如题所示错误。举个例子:错误代码:np.min(np.argwhere(array_ == num))以上代码,如果array_中不含有等于num的元素,则np.argwhere(array原创 2021-03-02 19:14:17 · 35104 阅读 · 0 评论 -
python产生不重复随机数
目录方法一方法二方法一import randomimport numpy as nprange_ = list(np.linspace(1,20,20,endpoint=True, dtype=int))random.sample(range_,10)输出:方法二from numpy.random import default_rngrng = default_rng()a = np.arange(1,21)print(a)index_ = rng.choice(a, siz原创 2021-02-13 22:13:33 · 681 阅读 · 0 评论 -
CSPNet论文笔记
论文地址:https://arxiv.org/pdf/1911.11929.pdf开源代码:https://github.com/WongKinYiu/CrossStagePartialNetworks作者提出Cross Stage Partial Network (CSPNet)来降低网络架构所需的算力。神经网络的计算量大很大程度上是由于在网络优化过程中出现的重复梯度信息导致的。作者提出的网络架构可以在降低约20%准确度的情况下维持和原网络架构相同甚至高于原网络架构的准确度。CSPNet这种架构思想原创 2021-02-07 13:25:54 · 688 阅读 · 2 评论 -
Jupyter NotebooK去掉警告
import warningswarnings.filterwarnings("ignore")原创 2021-01-21 16:56:56 · 785 阅读 · 0 评论 -
tf.math.round()/np.round()/tf.math.ceil()/tf.math.floor()/np.ceil()/np.floor()
tf.round()与np.round()不同,不是一般的四舍五入取整,而是“四舍六入五取偶”,也即:当小数部分小于0.5,则舍去;当小数部分大于0.5,则进位;当小数部分正好为0.5,此时要看整数部分是奇数还是偶数,如果为奇数,则小数部分进位,得到比原来整数部分大1的偶数;如果为偶数,则直接舍去小数部分。示例:import tensorflow as tfx = tf.constant([0.7, 2.51, 2.3, 1.43, -4.5, 3.5])tf.round(x)输出:原创 2021-01-19 09:32:34 · 779 阅读 · 0 评论 -
numpy中不同维度矩阵的加减和卷积操作
项目中经常遇到不同维度矩阵的加减操作,规则如下:(1)进行加减操作的两个矩阵最后一个维度要相同或其中一个矩阵的最后一个维度元素数为1a=np.array([[1,2],[3,4]])print(a.shape)b=np.array([[[7,8],[8,9]], [[7,8],[8,9]]])print(b.shape)print(b-a,(b-a).shape)print('==============11111===============')a=np.array(原创 2021-01-16 17:30:16 · 6908 阅读 · 2 评论 -
解决cannot import name ‘CuDNNLSTM‘问题
tensorflow.keras.layers中有两个关于LSTM的高级API:CuDNNLSTM和LSTM,从名字就可以看出CuDNNLSTM是为使用CUDA并行计算设计的,加速效果从几倍到几十倍。Tensorflow2.0以上版本在导入CuDNNLSTM会报如题所示错误,改为以下方式导入即可:from tensorflow.compat.v1.keras.layers import CuDNNLSTM as LSTM...原创 2021-01-15 20:44:18 · 5570 阅读 · 3 评论 -
区别numpy.random.uniform和np.random.randn和np.random.binomial
目录1、numpy.random.uniform()2、np.random.randn()3、np.random.binomial()1、numpy.random.uniform()numpy.random.uniform(low,high,size)从一个均匀分布[low,high)中随机采样,注意定义域是左闭右开,即包含low,不包含high.参数介绍:low: 采样下界,float类型,默认值为0;high: 采样上界,float类型,默认值为1;size: 输出样本数目,为int或元组原创 2020-12-07 22:46:08 · 1241 阅读 · 0 评论 -
解决_tkinter.TclError: no display name and no $DISPLAY environment variable问题
目录1、Backend2、backend的四种设置方式:(1)直接在matplotlibrc文件中对backend进行配置,改文件位于:(2)针对某一特定脚本,可以使用use()函数(3)执行脚本时加一个参数(4)为当前shell或脚本设置MPLBACKEND环境变量参考文献:这几天在容器内部署了一个数据实时预处理+模型计算的服务,在物理机的图形界面下运行正常,但涉及到matplotlib的pyplot,放到纯命令行的容器里却报错了(如题),网上也查到了问题原因,并不是因为没装python3-tk和tk-原创 2020-12-04 19:55:20 · 15009 阅读 · 1 评论 -
Ubuntu安装jupyter后,使用时显示找不到命令(command not found)
sudo vim /etc/profile添加如下代码export PATH=$PATH:~/.local/bin退出编辑source /etc/profile//执行配置原创 2020-12-06 15:19:46 · 1452 阅读 · 2 评论 -
jetson nano 安装python机器学习三方库问题
jetson nano是aarm64架构,很多python三方库不能直接pip install,以下几个机器学习常用三方库安装方式:sudo apt-get install python3-numpy sudo apt-get install python3-scipysudo apt-get install python3-pandassudo apt-get install python3-matplotlibsudo apt-get install python3-sklearnopen原创 2020-12-03 09:49:04 · 2814 阅读 · 0 评论 -
jetson nano apt install 问题解决Could not handshake: An unexpected TLS packet was received. [xxx]
jetson nano apt source:qinghuayuandeb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main multiverse restricted universedeb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main multiverse restricted universedeb http://mirror原创 2020-12-03 09:29:51 · 4838 阅读 · 0 评论