Python
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 · 2570 阅读 · 0 评论 -
ImportError: Unable to import required dependencies: pytz: No module named ‘pytz‘
我的解决办法是直接:pip install pytz如果失败了,可以参考这篇博客:https://blog.csdn.net/qq_39543404/article/details/115398656原创 2021-08-18 23:38:23 · 3096 阅读 · 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 · 2440 阅读 · 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 · 1681 阅读 · 1 评论 -
python循环中的break、continue、pass和exit()
目录1、break2、continue3、pass4、exit()1、break执行到该语句时,该语句后面的代码将不再执行,并且不再执行后续的循环过程;2、continue执行到该语句时,该语句后面的代码将不再执行,而是直接进入到下一循环过程;3、pass该语句不执行任何操作,起到占位作用,程序将继续执行该语句后面的代码;4、exit()该语句将直接退出python程序,所以后面的代码都无法执行,在VSCODE中会给出提示,后面的代码都是灰色的。...原创 2021-06-18 10:25:31 · 1299 阅读 · 0 评论 -
caffe的各种数据层和对应的python定义接口以及部署时的修改问题
data层用在训练或测试阶段,为模型提供数据接口,caffe可以接受的数据类型包括数据库类型(如LMDB、LevelDB)、hdf5、内存数据、图片数据等。1、数据库类型该类型数据必须指定数据库文件夹路径,该文件夹内包含一个data.mdb文件和一个lock.mdb文件;还需要指定batch_size.可选参数包括:rand_skip: 在开始的时候,路过某个数据的输入。通常对异步的SGD很有用。backend: 选择是采用LevelDB还是LMDB, 默认是LevelDB.protot原创 2021-06-08 16:15:46 · 179 阅读 · 0 评论 -
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 · 453 阅读 · 0 评论 -
ImportError: No module named google.protobuf.internal
编译caffe时,不是在conda环境下进行的,虽然编译caffepy过程顺利,但在conda环境下导入caffe时报如题错,解决方法:重新安装就行了:pip install protobuf原创 2021-06-01 23:12:07 · 970 阅读 · 0 评论 -
解决import TensorFlow时“.../.../site-packages/dateutil/tz.py“报错
安装caffe后,结果TensorFlow导入失败,把matplotlib升级以下就可以了:pip install matplotlib --upgrade原创 2021-05-31 19:47:40 · 374 阅读 · 0 评论 -
MSB/LSB(big endian/little endian)
目录1、什么事MSB/LSB(big endian/little endian)2、python解析时二进制文件时注意大小端问题3、举例:1、什么事MSB/LSB(big endian/little endian)LSB(Least Significant Bit),意为最低有效位。MSB(Most Significant Bit),意为最高有效位。若MSB=1,则表示数据为负值,若MSB=0,则表示数据为正。两大CPU派系指定的是Motorola的PowerPC系列CPU和Intel的x86系列C原创 2021-05-17 16:45:03 · 1050 阅读 · 0 评论 -
BatchNormalization总结
目录1、Internal Covariate Shift现象1、Internal Covariate Shift现象网络在训练过程中,中间层的权重在不断发生变化,导致该层输出数据的分布发生改变,这种数据分布的改变称为’Internal Covariate Shift’。...原创 2021-05-13 17:08:05 · 2106 阅读 · 0 评论 -
python解析二进制文件以及不同进制数值间的转换
目录1、python解析二进制文件2、不同进制数值间的转换参考文献:1、python解析二进制文件不同类型数据的字节数不同,因此首先要明确不同物理量数据所在的字节位置及其数据类型,python和C语言中不同数据类型对应关系如下,表中standard size一列给出了该类型数据占据的字节个数。用python解析二进制文件的代码示例如下,这里需要注意的是:(1)明确你想解析出来的数据所在的字节范围;(2)明确该数据的数据类型,以避免解析结果错误或字节数不匹配。binFile=open('./原创 2021-05-12 16:12:05 · 7057 阅读 · 4 评论 -
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 · 1002 阅读 · 0 评论 -
python 字符串大小写转换
str = "You Like coFFee"print(str.upper()) # 把字符中所有小写字母转换成大写字母print(str.lower()) # 把字符中所有大写字母转换成小写字母print(str.capitalize()) # 把字符串的第一个字母改为大写字母,其余改为小写print(str.title()) # 把字符串每个单词的第一个字母改为大写,其余改为小写输出:...原创 2021-05-07 09:24:30 · 625 阅读 · 0 评论 -
python 去掉字符串头尾及内部指定字符
目录1、去掉头尾字符2、删除字符串中间字符1、去掉头尾字符方法:str.strip(‘指定字符’)举例:字符串为:str_test = ‘444444F:\Datasets\coco\images\val2014’去掉结尾的’val2014’str_test = '444444F:\\Datasets\\coco\\images\\val201444444'str_test = str_test.strip('val2014')str_test输出:注:只要待处理字符串的头原创 2021-04-30 09:21:40 · 12096 阅读 · 0 评论 -
python 打印类的所有属性和方法
利用dir(obj)方法获得obj对象的所有属性和方法名,返回一个list。for item in dir(top_k_metergroup): print(item)__class____delattr____dict____dir____doc____eq____format____ge____getattribute____getitem____gt____hash____init____init_subclass____le____lt____modul原创 2021-04-28 10:38:01 · 10330 阅读 · 4 评论 -
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 · 1984 阅读 · 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 · 380 阅读 · 0 评论 -
感受野知识点总结
VGG论文中提出的几个结论:原创 2021-04-11 15:26:26 · 446 阅读 · 0 评论 -
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 · 9440 阅读 · 1 评论 -
常见的类别型数据列编码方法汇总
目录1、OneHotEncoder2、 LabelEncoder3、LabelBinarizer4、pandas.get_dummiespython数据分析和建模过程中,常见的类别型数据编码方法有OneHotEncoder, LabelEncoder , LabelBinarizer,pandas.get_dummies。下面逐一介绍。1、OneHotEncoderOneHotEncoder既可以对字符串型变量或数值型变量进行编码(旧版可能只能对数值型变量进行编码)import pandas as原创 2021-03-12 14:48:12 · 1694 阅读 · 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 · 399 阅读 · 0 评论 -
多种方法判断某个值是否在一个有序的二维数组中
1、问题描述最近遇到一个问题,给出一个有序的二维数组(方阵)(有序指的是对于每一行和每一列元素都是逐渐增大的),然后让你用最快的方法判断某个值是否在这个数组中,如果存在则返回True,反之返回False。例如给出的有序数组如下所示:array = [[1,2,3], [4,5,6], [7,8,9]]让你判断4是否出现在数组中。2、不考虑矩阵特点的算法(三种)解决这个问题的方法有很多,如果不考虑二维方阵本身是有序的特点,那你至少应该想到以下方法:def find原创 2021-03-11 10:26:45 · 1010 阅读 · 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 · 1440 阅读 · 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 · 582 阅读 · 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 · 2116 阅读 · 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 · 35239 阅读 · 0 评论 -
ubuntu安装tensorflow2.X
不知你是否有这种经历,新系统转好后,安装不了tensorflow2.1以后的版本,提示找不到对应的版本,而此时tensorflow2.4都已经有了。如何安装tensorflow2.1以后的版本?第一步:升级pip和setuptoolpip3 install --upgrade pippython3 -m pip install --upgrade setuptools第二步:安装tensorboardpip3 install tensorboard这一步会安装grpcio,如果安装失败,原创 2021-02-22 22:03:20 · 922 阅读 · 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 · 693 阅读 · 0 评论 -
dataframe中类别列转数值列
首先,查看该列都有哪几类:encoded_list=['状态','到达状态','生产制度','运行制度','截断阀状态']status_list=[]for i in encoded_list: status_list.append(Counter(df_i[i]))status_list然后,提供两种方法将类别列转为数字1、方法一:map()方法status_OC_mapping = { '关': 0, '开': 1原创 2021-01-20 15:50:46 · 546 阅读 · 0 评论 -
pandas学习笔记------set_index()
pandas中set_index方法是专门用来将某一列设置为index的方法。它具有简单,方便,快捷的特点。主要参数:keys:需要设置为index的列名drop:True or False。在将原来的列设置为index,是否需要删除原来的列。默认为True,即删除(Delete columns to be used as the new index.)append:True or False。新的index设置之后,是否要删除原来的index。默认为True。(Whether to append原创 2021-01-20 14:18:08 · 4662 阅读 · 4 评论 -
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 · 792 阅读 · 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 · 6974 阅读 · 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 · 5674 阅读 · 3 评论 -
数据分析中判断数据类型常用方法汇总(pandas)
目 录1、空值判断2、其他数据类型判断2.1 判断Serise或DataFrame中某一列的数据类型2.2 利用np.issubdtype()判断Serise或DataFrame中某元素的类型参考文献:1、空值判断判断数据是否为空值的常用函数有:pd.isna(),pd.isnull(),np.isnat()和np.isnan(),四种方法用于判断的数据类型如下表所示:注意:1、判断某个值是否空值,将该值传给相应函数即可,如pd.isna(input_data)、np.isnan(np.原创 2021-01-13 22:58:02 · 6437 阅读 · 0 评论 -
求两个列表的交集、并集和补集
1、求交集a = [3, 4, 5, 6]b = [1, 4, 6, 8]#以下几种方法是等效的results_1= [x for x in b if x in set(a)]print('results_1:',results_1)results_2= list(set(a) & set(b))print('results_2:',results_2)results_3= list(set(a).intersection(b))print('results_3:',results原创 2021-01-13 22:22:48 · 2237 阅读 · 1 评论 -
np.r_和np.c_用法解析
numpy中np.r_和np.c_用于矩阵操作,具体来说:np.r_是按列连接两个矩阵,就是把两矩阵上下相加,要求列数相等。np.c_是按行连接两个矩阵,就是把两矩阵左右相加,要求行数相等。举例:import numpy as npa=np.array([1,2,3]) #注意这两个矩阵的形状是(3,),不是(1,3),[[1,2,3]]这个矩阵的形状才是(1,3)b=np.array([4,5,6])print(a.shape)print("=======================原创 2020-12-30 23:03:30 · 367 阅读 · 0 评论 -
解决TypeError: No conversion path for dtype: dtype(‘<U39‘)错误
在将数据写入h5文件时,出现了如提所示错误,发现写入数据包含字符串时就会报这个错误。目前有两个解决方法,一个是将字符串型数据保存到其它格式文件,如pickle文件,txt等;另一种是将字符串数据进行转换,然后再写入h5文件:img_dir_name_list_encode=[]for j in img_dir_name_list: img_dir_name_list_encode.append(j.encode())使用时(h5文件取出后),再转换一下就可以了:img_dir_name原创 2020-12-23 16:51:28 · 2504 阅读 · 0 评论 -
修改numpy array的数据类型
目录1、numpy数据类型2、改变numpy array数据类型1、numpy数据类型数据名称说明bool布尔类型,true,falseint_默认的整数类型(类似于 C 语言中的 long,int32 或 int64)intc与 C 的 int 类型一样,一般是 int32 或 int 64intp用于索引的整数类型(类似于 C 的 ssize_t,一般情况下仍然是 int32 或 int64)int8字节(-128 to 127)int16原创 2020-12-23 16:42:24 · 13631 阅读 · 0 评论 -
tf.transpose()转置函数介绍
如果一个二维张量做转置,我们很清楚该怎么做;如果一个三维或者更高维张量做转置呢,这时候可能会比较麻烦,人工去做就容易出错。tensorflow中有一个函数可以帮我们做这个工作:tf.transpose()函数定义:tf.transpose(a, perm=None, name=“transpose”)a待转置张量;perm转置方式,二维矩阵只有一种,高维矩阵有n!-1种,默认为None,采用完全颠倒的方式进行,比如一个(2,3,4)形状的三维矩阵,采用完全颠倒的方式转置后为(4,3,2)形状矩阵;原创 2020-12-19 22:30:23 · 621 阅读 · 2 评论