
Python
文章平均质量分 66
Lindsay.Lu丶
- find more, find yourself. -
展开
-
读取并导出Tensorboard中数据
问题描述目前的问题是,使用keras的callback将日志数据(acc、loss、val_acc、val_loss)写入文件,然后使用Tensorboard在浏览器查看变化,现在打算读出相关数据,并自行绘图。解决方案转载 2021-06-09 13:45:18 · 2375 阅读 · 1 评论 -
【LintCode】Q9_390. 寻找峰值 II【Hard】
Q9_390. 寻找峰值 II给定一个整数矩阵 A, 它有如下特性:相邻的整数不同 矩阵有 n 行 m 列,n和m不会小于3。 对于所有的 i < n, 都有 A[i][0] < A[i][1] && A[i][m - 2] > A[i][m - 1] 对于所有的 j < m, 都有 A[0][j] < A[1][j] && A[n - 2][j] > A[n - 1][j] 我们定义一个位置 [i,j] 是峰值, 当且仅原创 2021-01-19 10:54:42 · 218 阅读 · 0 评论 -
详解tensorflow2.0的模型保存方法(一)
前言:tensorflow2.0中有很多种模型保存方法,为了做一个统一的比较,本文做一个归纳总结,加之自己在这上面踩过很多的坑,现在感觉做一个总结实在是有必要。因为tensorflow创建模型的方式很多,包括Sequence、Model、SubClass Model,我们可以保存所有的模型,也可以仅仅保存权重。本文为系列文章第一篇,介绍各种模型保存方法,后面还会介绍checkpoint以及SavedModel的细节。一、Sequence和Model模型的保存1.1 保存整个模型为一个 h5 文件转载 2020-11-09 15:20:02 · 3447 阅读 · 2 评论 -
[tf2] 损失函数中的from_logits
损失函数中的logitsSparse_categorical_crossentropy函数中的参数from_logits用法:其中形参默认为from_logits=False,网络预测值y_pred 表示必须为经过了 Softmax函数的输出值。当 from_logits = True 时,网络预测值y_pred 表示必须为还没经过 Softmax 函数的变量 。logits表示网络的直接输出 。没经过sigmoid或者softmax的概率化。from_logits=False就表示把已经概率化原创 2020-10-29 10:01:09 · 1547 阅读 · 0 评论 -
浅谈KL散度
一、第一种理解 相对熵(relative entropy)又称为KL散度(Kullback–Leibler divergence,简称KLD),信息散度(information divergence),信息增益(information gain)。 KL散度是两个概率分布P和Q差别的非对称性的度量。 KL散度是用来度量使用基于Q的编码来编码来自P的样本平均所需的额外的比特个数。 典型情况下,P表示数据的真实分布,Q表示数据的理论分布,模型分布,或P的近似分布。 根据sha...转载 2020-10-28 16:07:06 · 690 阅读 · 0 评论 -
tensorflow 中 boolean_mask的具体含义和例程解析
tensorflow里的一个函数,boolean_mask(a,b)将使a (m维)矩阵仅保留与b中“True”元素同下标的部分。在做目标检测(YOLO)时常常用到。"""Apply boolean mask to tensor.Numpy equivalent is `tensor[mask]`.```python# 1-D exampletensor = [0, 1, 2, 3]mask = np.array([True, False, True, False])boolean_ma...转载 2020-10-28 15:56:32 · 605 阅读 · 0 评论 -
pytorch register_buffer的作用
官方:Adds a persistent buffer to the module.This is typically used to register a buffer that should not to be considered a model parameter. For example, BatchNorm’s running_mean is not a parameter, but is part of the persistent state.Buffers can be ac原创 2020-10-20 20:31:02 · 655 阅读 · 0 评论 -
Python实现二分查找与bisect模块详解
二分查找又叫折半查找,二分查找应该属于减治技术的成功应用。python标准库中还有一个灰常给力的模块,那就是bisect。这个库接受有序的序列,内部实现就是二分。下面这篇文章就详细介绍了Python如何实现二分查找与bisect模块,需要的朋友可以参考借鉴,下面来一起看看吧。前言其实Python 的列表(list)内部实现是一个数组,也就是一个线性表。在列表中查找元素可以使用list.index()方法,其时间复杂度为O(n) 。对于大数据量,则可以用二分查找进行优化。二分查找要求对象必须有..原创 2020-10-12 10:46:36 · 1050 阅读 · 0 评论 -
xgboost & lightgbm 调参指南
本文重点阐述了xgboost和lightgbm的主要参数和调参技巧,其理论部分可见集成学习,以下内容主要来自xgboost和LightGBM的官方文档。xgboostXgboost参数主要分为三大类:General Parameters(通用参数):设置整体功能Booster Parameters(提升参数):选择你每一步的booster(树or回归)Learning Task Parameters(学习任务参数):指导优化任务的执行General Parameters(通用参数)...原创 2020-09-19 03:54:22 · 2009 阅读 · 0 评论 -
error: command ‘E:\\XXX\\VS2015\\VC\\BIN\\x86_amd64\\link.exe‘ failed with exit status 1158
解决LINK : fatal error LNK1158: 无法运行“rc.exe”error: command ‘E:\XXX\VS2015\VC\BIN\x86_amd64\link.exe’ failed with exit status 1158的问题。错误是放置rc.exe和rcdl.dll文件的地方。Visual Studio使用的是64位“交叉编译器”,它不存在于S(VSInstallDir)VC \ bin中,而是存在于S(VSInstallDir)VClbinx86_amd64文件夹中原创 2020-09-18 15:11:41 · 1749 阅读 · 0 评论 -
python中yield的用法详解——最简单,最清晰的解释
首先我要吐槽一下,看程序的过程中遇见了yield这个关键字,然后百度的时候,发现没有一个能简单的让我懂的,讲起来真TM的都是头头是道,什么参数,什么传递的,还口口声声说自己的教程是最简单的,最浅显易懂的,我就想问没有有考虑过读者的感受。接下来是正题:首先,如果你还没有对yield有个初步分认识,那么你先把yield看做“return”,这个是直观的,它首先是个return,普通的return是什么意思,就是在程序中返回某个值,返回之后程序就不再往下运行了。看做return之后再把它看做一个是生成器(转载 2020-09-03 11:59:59 · 190 阅读 · 0 评论 -
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any()
在使用pandas判断数据时出现错误提示:ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().个人理解:这是因为,你将一个值与多个值或一个列表中的值相比较、匹配,导致的问题看提示,我们可以知道,在比较前,我们可以使用它推荐的某个方法:a.empty if(a.empty):print("!!") 判断a是否为空a.it...原创 2020-08-30 23:10:17 · 625 阅读 · 0 评论 -
numpy中的nonzero()
nonzero(a)nonzero函数是numpy中用于得到数组array中非零元素的位置(数组索引)的函数。它的返回值是一个长度为a.ndim(数组a的轴数)的元组,元组的每个元素都是一个整数数组,其值为非零元素的下标在对应轴上的值。(1)只有a中非零元素才会有索引值,那些零值元素没有索引值;(2)返回的索引值数组是一个2维tuple数组,该tuple数组中包含一维的array数组。其中,一维array向量的个数与a的维数是一致的。(3)索引值数组的每一个array均是从一个维度上来描述其索原创 2020-08-28 17:19:07 · 986 阅读 · 1 评论 -
pd.DataFrame 数据的保存和读取((df.to_csv、df.to_json、df.to_html、df.to_excel))
DataFrame数据的保存和读取df.to_csv写入到csv文件 pd.read_csv读取csv文件 df.to_json写入到json文件 pd.read_json读取json文件 df.to_html写入到html文件 pd.read_html读取 html文件 df.to_excel 写入到 excel 文件 pd.read_excel 读取 excel 文件pandas.DataFrame.to_csv将 DataFrame写入到 ...原创 2020-08-28 16:28:19 · 18958 阅读 · 0 评论 -
np.log1p( ) 函数的应用
数据平滑处理 -- log1p( ) 和 exmp1( )1. 数据预处理时首先可以对偏度比较大的数据用og1p函数进行转化,使其更加服从高斯分布,此步处理可能会使我们后续的分类结果得到一个好的结果。2. 平滑问题很容易处理掉,导致模型的结果达不到一定的标准,log1p( )能够避免复值得问题 — 复值指一个自变量对应多个因变量log1p( ) 的使用就像是一个数据压缩到了一个区间,与数据的标准类似。其逆运算就是expm1的函数由于使用的log1p()对数据进行了压缩,最后需要将预测出的平.原创 2020-08-28 12:48:00 · 774 阅读 · 0 评论 -
Python中的sort()
一、基本形式sorted(iterable[, cmp[, key[, reverse]]])iterable.sort(cmp[, key[, reverse]])参数解释:(1)iterable指定要排序的list或者iterable,不用多说;(2)cmp为函数,指定排序时进行比较的函数,可以指定一个函数或者lambda函数,如: students为类对象的list,没个成员有三个域,用sorted进行比较时可以自己定cmp函数,例如这里要通过比较第三个数据...原创 2020-08-18 11:38:17 · 900 阅读 · 1 评论 -
skearn 自定义转换器 [TransformerMixin, BaseEstimator, fit_transform, fit, transform]
自定义转换函器:创建一个类,实现fit()[return self]、transform()和fit_transform(),如果使用TransformerMixin作为基类,则自动实现fit_transform()函数,fit_transform() <==> fit().transform(),如果添加BaseEstimator作为基类,,注意此时__init__函数不能接受 ∗args∗args 和 ∗∗kwargs∗∗kwargs,还可以使用两个额外的方法(get_params()转载 2020-08-13 19:00:12 · 721 阅读 · 0 评论 -
深度学习系列:神经网络防止过拟合的方法
<p>过拟合(overfitting)是指在模型参数拟合过程中的问题,由于训练数据包含抽样误差,训练时,复杂的模型将抽样误差也考虑在内,将抽样误差也进行了很好的拟合。具体表现就是最终模型在训练集上效果好,而在测试集上的效果很差,模型的泛化能力比较弱。</p>那为什么要解决过拟合现象呢?这是因为我们拟合的模型一般是用来预测未知的结果(不在训练集内),过你个虽然在训练集上效果很好,但在实际使用时(测试集)效果很差。同时,在很多问题上,我们无法穷尽所以状态,不可能将所有情...转载 2020-08-03 20:11:49 · 1417 阅读 · 0 评论 -
神经网络权值初始化之Xavier和He初始化
Xavier初始化:条件:正向传播时,激活值的方差保持不变;反向传播时,关于状态值的梯度的方差保持不变。 初始化方法: 假设激活函数关于0对称,且主要针对于全连接神经网络。适用于tanh和softsign 论文地址:Understanding the difficulty of training deep feedforward neural networks 参考资料:深度学习之参数初始化(一)——Xavier初始化He初始化:论文地址:Delving Deep into Rectifier原创 2020-08-03 20:09:42 · 1303 阅读 · 0 评论 -
numpy-堆叠函数stack(),hstack(),vstack()与axis=0,1,2...-2,-1
文章目录numpy中axis取值的说明stack()函数np.hstack()函数np.vstack()函数这三个函数有些相似性,都是堆叠数组,里面最难理解的应该就是stack()函数了。先来看一下axis的用法,然后在stack()中就好理解了。numpy中axis取值的说明axis: 0,1,2,3,…是从外开始剥,-n,-n+1,…,-3,-2,-1是从里开始剥。为了方便下面的理解,可以这样看待:在numpy中...原创 2020-07-31 18:07:24 · 448 阅读 · 0 评论 -
【DL】卷积神经网络的经典网络(LeNet-5、AlexNet、ZFNet、VGG-16、GoogLeNet、ResNet)
一、CNN卷积神经网络的经典网络综述下面图片参照博客:http://blog.youkuaiyun.com/cyh_24/article/details/51440344二、LeNet-5网络 输入尺寸:32*32卷积层:2个降采样层(池化层):2个全连接层:2个输出层:1个。10个类别(数字0-9的概率)LeNet-5网络是针对灰度图进行训练的,输入图像大小为32*32*1,不包含输入层的情况下共有7层,每层都包含可训练参数(连接权重)。注:每个层有多个Feature Map.转载 2020-07-29 21:57:59 · 481 阅读 · 0 评论 -
keras中EarlyStopping
EarlyStopping是什么EarlyStopping是Callbacks的一种,callbacks用于指定在每个epoch开始和结束的时候进行哪种特定操作。Callbacks中有一些设置好的接口,可以直接使用,如’acc’,’val_acc’,’loss’和’val_loss’等等。 EarlyStopping则是用...转载 2020-07-29 14:35:57 · 477 阅读 · 0 评论 -
【LeetCode】最近时刻 next-closest-time [Medium]
681.最近时刻给定一个"HH:MM"格式的时间,重复使用这些数字,返回下一个最近的时间。每个数字可以被重复使用任意次。保证输入的时间都是有效的。例如,"01:34","12:09" 都是有效的,而"1:34","12:9"都不是有效的时间。例1:输入: "19:34"输出: "19:39"解释: 从1,9,3,4中选出的下一个最近的时间是19:39,它是五分钟后。 答案不是19:33,因为它是23小时59分钟后。例 2:输入: "23:59"输出: "22...原创 2020-07-29 11:14:21 · 1494 阅读 · 0 评论 -
Fail to find the dnn implementation. [Op:CudnnRNN]解决办法
Fail to find the dnn implementation. [Op:CudnnRNN]解决办法使用的版本为tensorflow2.0报错信息:tensorflow.python.framework.errors_impl.UnknownError: [_Derived_] Fail to find the dnn implementation. [[{{node CudnnRNN}}]] [[sequential/lstm/StatefulPartitionedCal原创 2020-07-27 20:06:44 · 3731 阅读 · 2 评论 -
分类问题样本数据不平衡的几个解决办法
分类时,由于训练集合中各样本数量不均衡,导致模型训偏在测试集合上的泛化性不好。解决样本不均衡的方法主要包括两类:(1)数据层面,修改各类别的分布;(2)分类器层面,修改训练算法或目标函数进行改进。还有方法是将上述两类进行融合。数据层面1. 过采样(1) 基础版本的过采样:随机过采样训练样本中数量比较少的数据;缺点,容易过拟合;(2) 改进版本的过采样:SMOTE,通过插值的方式加入近邻的数据点;(3) 基于聚...转载 2020-07-21 17:56:48 · 2780 阅读 · 0 评论 -
【LeetCode】269.火星人词典 · alien-dictionary (Hard)
269. 火星人词典 · alien-dictionary有一种新的使用拉丁字母的外来语言。但是,你不知道字母之间的顺序。你会从词典中收到一个非空的单词列表,其中的单词在这种新语言的规则下按字典顺序排序。请推导出这种语言的字母顺序。说明:你可以假设所有的字母都是小写。如果a是b的前缀且b出现在a之前,那么这个顺序是无效的。如果顺序是无效的,则返回空字符串。这里可能有多个有效的字母顺序,返回以正常字典顺序看来最小的。例1:输入:["wrt","wrf","er","ett",".原创 2020-07-17 11:24:58 · 823 阅读 · 1 评论 -
python之subplot,subplot2grid,gridspec,subpplots分图、分格展示
subplot分图展示均匀分图matplotlib 是可以组合许多的小图, 放在一张大图里面显示的. 使用到的方法叫作 subplot. 使用import导入matplotlib.pyplot模块, 并简写成plt. 使用plt.f...原创 2020-07-16 17:08:16 · 2212 阅读 · 0 评论 -
PyTorch - 保存和加载模型
保存和加载模型关于保存和加载模型,有三个核心功能需要熟悉:torch.save:将序列化的对象保存到磁盘。此函数使用Python的 pickle实用程序进行序列化。使用此功能可以保存各种对象的模型,张量和字典。torch.load:使用pi...原创 2020-07-09 22:49:54 · 314 阅读 · 0 评论 -
python 可视化:fig, ax = plt.subplots()画多表图的3中常见样例 & 自定义图表格式
目录一、fig, ax = plt.subplots()的作用?二、参数的含义?三、怎么在一个图上排列多个子图?四、怎么把多个子图一起合并到一个图上?《Python for Data Analysis》 2nd Edition一、fig, ax = plt.subplots()的作用?它是用来创建 总画布/figure“窗口”的,有figure就可以在上边(或其中一个子网格/subplot上)作...转载 2020-07-09 20:14:13 · 7125 阅读 · 0 评论 -
【LeetCode】51.N皇后 - Hard
N皇后问题 · N-Queensn皇后问题研究的是如何将n个皇后放置在n×n的棋盘上,并且使皇后彼此之间不能相互攻击。 上图为 8 皇后问题的一种解法。给定一个整数 n,返回所有不同的n皇后问题的解决方案。每一种解法包含一个明确的n 皇后问题的棋子放置方案,该方案中 'Q' 和 '.' 分别代表了皇后和空位。示例 1:输入: 4输出: [[".Q..", // 解法 1 "...Q", "Q...", "..Q."],["....原创 2020-07-07 08:47:46 · 167 阅读 · 0 评论 -
【LeetCode】1120. 子树的最大平均值 - Medium
1120/9_597. 具有最大平均数的子树 · subtree_with_maximum_average给一棵二叉树,找到有最大平均值的子树。返回子树的根结点(Lint)/最大平均值(Leet)。说明:Q9_597: LintCode会打印出根结点为你返回节点的子树,保证有最大平均数子树只有一棵。Q1120: LeetCode直接返回MaxAvg.提示:树中的节点数介于 1 到 5000之间。每个节点的值介于 0 到 100000 之间。如果结果与标准答案的误差不超..原创 2020-07-05 10:05:21 · 996 阅读 · 0 评论 -
np.argmax()
1.对一个一维向量import numpy as npa = np.array([3, 1, 2, 4, 6, 1])b=np.argmax(a)#取出a中元素最大值所对应的索引,此时最大值位6,其对应的位置索引值为4,(索引值默认从0开始)print(b)#42.对2维向量(通常意义下的矩阵)a[][]import numpy as npa = np.array([[1, 5, 5, 2], [9, 6, 2, 8], .转载 2020-05-17 20:39:15 · 222 阅读 · 0 评论 -
一个有趣的python排序模块:bisect
先看看模块的结构: 前面五个属性大家感兴趣可以打出来看看数值,这里就不介绍了。 先说明的是,使用这个模块的函数前先确保操作的列表是已排序的。先看看 insort 函数:其插入的结果是不会影响原有的排序。 再看看bisect 函数: 其目的在于查找该数值将会插入的位置并返回,而不会插入。 接着看 bisect_left ...原创 2020-05-17 11:28:52 · 196 阅读 · 0 评论 -
Python中*args、**args到底是什么、有啥区别、怎么用
#*args的用法:当传入的参数个数未知,且不需要知道参数名称时。def func_arg(farg, *args): print("formal arg:", farg) for arg in args: print("another arg:", arg)func_arg(1,"youzan",'dba','四块五的妞')print("-----------------------")# 输出结果如下:# formal arg: 1# another a...原创 2020-05-16 13:19:47 · 643 阅读 · 1 评论 -
python 成员关系:__contains__,__iter__和__getitem__
#__contains__优于__iter__优于__getitem__方法#__contains__方法应该把成员关系定义为对一个映射应用键(并且可以使用快速查找),以及用于序列的搜索class Iters: def __init__(self, value): self.data=value def __getitem__(self, i): ...原创 2020-04-01 22:36:32 · 343 阅读 · 0 评论 -
Python的递推式构造列表(List comprehension)
介绍我们在上一章学习了“Lambda 操作, Filter, Reduce 和 Map”, 但相对于map, filter, reduce 和lamdba, Guido van Rossum更喜欢用递推式构造列表(List comprehension)。在这一章我们将会涵盖递推式构造列表(List comprehension)的基础功能。递推式构造列表(List comprehension...原创 2020-02-29 13:53:56 · 1394 阅读 · 1 评论 -
Python的lambda, filter, reduce 和 map
Lambda 操作Lambda操作——有些人喜欢,有些人讨厌,还有很多人害怕。当你看完了我们这章的介绍后,我们很自信你会喜欢上它。要不然,你可以去学习Guido van Rossums更喜欢去用的“list comprehensions”(递推式构造列表)了,因为他也不喜欢Lambda, map filter 和reduce。Lambda操作或者lambda函数是一种创建小型匿名函数的方式...原创 2020-02-29 13:50:05 · 253 阅读 · 0 评论 -
tf.split()函数的用法
在tensorflow 的代码里经常看到tf.split()这个函数,今天来扒一扒这个API的用法tf.split( value, num_or_size_splits, axis=0, num=None, name='split')Splits a tensor into sub tensors.If num_or_size_splits...原创 2020-02-26 20:59:34 · 382 阅读 · 0 评论 -
【深度学习论文】FaceNet: A Unified Embedding for Face Recognition and Clustering
0. 前言参考资料: FaceNet: A Unified Embedding for Face Recognition and Clustering - 原文 译文 其他参考博客: 优快云博客:【深度学习论文笔记】FaceNet: A Unified Embedding for Face Recognition and Clustering 优快云博客:Face...原创 2020-02-19 10:47:32 · 857 阅读 · 0 评论 -
使用TensorFlow进行验证码识别主要实现思路
主要的思路是传统的机器学习思路,即:准备训练集、提取特征、使用定义好的神经网络结构进行训练生成训练模型;对预测集进行特征提取,再使用模型预测。1、准备训练集。对训练集进行人工标注(也可以通过captcha验证码库生成标注好的验证码),这些训练集的格式必须是统一的,比如都是160*60分辨率,RGB格式的。(当然正式训练时可以再进一步预处理,例如分辨率转化、灰化等)准备验证集,可以是从训练集...转载 2020-02-17 22:26:59 · 265 阅读 · 0 评论