- 博客(26)
- 收藏
- 关注
原创 EM算法的简单理解
极大似然估计 与 EM算法什么是极大似然估计?简单的说,有一组观测数据Y,我们假定这个Y是由参数theta产生的概率分布P产生的。极大似然估计,就是求解theta,使得由P产生Y的可能性最大化。我们在学习概率论时经常解的概率题,都可以看作时一次极大似然估计。比如:重复扔一个硬币,得到序列[1,0,0,1,1],求硬币朝上的概率?Y = [1,0,0,1,1]P = 假设硬币朝上的概率时pitheta = pi观测值,概率模型,参数都有了。计算pi = Mean(Y) = 0.6求解最大
2021-01-29 10:13:17
143
原创 python多继承时,函数调用顺序
python多继承时,函数调用顺序问题的根源在于MRO算法什么是MRO算法呢?Method Resolution Order。即方法解析顺序。什么是方法解析顺序呢?就是当存在类的继承关系时,在子类父类中查找一个方法的顺序。我们可以在类的.__mro__中查看该类的MRO。比如 有 A,B(A), C(A), D(B, C)的类定义,我们可以查看D.__mro__会看到D,B,C,A,Object的顺序,也可以查看B.__mro__会看到B,A,Object。通常有两种情况会触发按照mro的查找。
2020-10-16 14:02:39
504
原创 关于Attention机制
Attention机制,是根据目标给输入分配权重,并加权求和的操作。标准的输入为三部分,即Query, Key, Value。(下面简写为Q,K,V)标准的操作是根据Query和Key计算出一个score,并使用该score作为权重,对Value进行加权求和。即 step1, score = F(Q, K)step2, attention_weight = softmax(score)step3, output = sum(attention_weight * V)F是计算权重分数所使用的函数
2020-07-06 13:51:42
244
原创 Focal Loss理解
Focal Loss 来自于2018年的一篇论文《Focal Loss for Dense Object Detection》,作者包括Kaiming大神等。Focal Loss在文中旨在解决class imbalance的问题。其定义如下:首先文中给出Cross Entropy Loss的定义为:CE(pt)=−log(pt)CE(p_t)=-\log(p_t)CE(pt)=−log(pt)其中pt={pif y=11−p otherwisep_t=\
2020-05-25 12:47:17
387
原创 CTPN论文阅读
CTPN论文阅读CTPN,全称Connectionist Text Proposal Network。是16年的一篇文本检测模型,作者是Zhi Tian等,发表于ECCV。(https://arxiv.org/abs/1609.03605)同时也阅读了CrazySummerday实现pytorch版本的代码。(https://github.com/CrazySummerday/ctpn.py...
2020-03-08 15:24:34
316
原创 pytorch入门笔记1
pytorch入门笔记11,创建tensortorch有很多类似numpy的操作。比如可以用类似numpy的函数去生产一个tensor:torch.zeros, torch.ones, torch.rand也有torch.zeros_like, torch.ones_like, torch.rand_like等,也可以给torch.tensor传入一个arry或list去转换类型。2...
2020-03-06 09:40:36
106
原创 numpy中ravel和flatten的区别
numpy中ravel和flatten的区别ravel获得的是view,改变会影响原来数组,flatten获得的是copy,改变不影响原来数组。import numpy as np# 随机生成aa = np.random.rand(2,2)print(a)# flatten成bb = a.flatten()print(b)# 修改b,a不变b *= 10print(a)# ...
2020-03-05 14:34:23
164
原创 numpy数组引用的+=运算符问题
numpy数组引用的+=运算符问题在numpy中,有array a,如果令b=a,则b成为a的引用,和a指向同一个array。但是对b的两种不同的操作方式,会导致b成为新的copy或者保持引用状态。即采用b+=1 或 b=b+1会导致很大的不同。这个不清楚的话会很困惑,要记住。例子如下:a = np.random.rand(3)print(a)# b和a指向了不同的arrayb ...
2020-03-05 14:30:33
381
原创 229. Majority Element II
Majority Element II找出数列中出现次数大于1/3数列长度的值。如果用字典当然可以计算,但是题目要求空间复杂度O(1)如何不使用额外空间计算数列中值的出现次数呢?这里用到的方法叫做Boyer-Moore Algorithm添加链接描述,是一种非常巧妙的统计majority的算法,具有O(n)的时间复杂度和O(1)的空间复杂度。1,定义majority为出现次数超过一半...
2020-02-29 15:31:25
127
原创 leetcode 221. Maximal Square
leetcode 221. Maximal Square给定一个元素只有0或1的matrix,寻找其中由1组成的最大正方形的面积。采用动态规划解题。dp[i][j]表示以i,j为右下角的值为1的最大正方形的边长。于是对于matrix[i][j] == 0, 有dp[i][j] == 0对于matrix[i][j] == 1, 有dp[i][j] = min(dp[i-1][j-1], d...
2020-02-29 13:57:21
75
原创 leetcode 220 Contains Duplicate III
判断数列nums中,是否存在index距离不超过k的两个元素间值差不超过t最直观的想法就是用大小为t+1的滑动窗口去滑动,同时比较每个窗口内的元素差。但是遍历数组去比较必然会超时。1,要用字典去快速读取和比较。2,字典的key采用了“桶”方式,用数组的值x处以元素差t,即x//max(t, 1)分析可知,如字典中存在与x不超过t的差,其key必然在( x//max(t, 1), x//m...
2020-02-29 09:40:40
67
原创 堆排序
在做leet code 215. Kth Largest Element in an Array。要求输出一个无序数组的第k大的元素。可用堆排序求解。于是复习了一下堆排序的相关知识,如下:堆排序**1 堆的定义:**近似完全二叉树的结构。子节点的键值总是大于(或小于)它的父节点。以大顶堆为例,最大值总是位于根节点。堆是二叉树结构,也可以用数组表示,即逐层遍历元素的顺序。2 堆的操作...
2020-02-25 23:48:08
59
原创 Leetcode 142 Linked List Cycle II解法
快慢指针法找链表中的循环,很巧妙。即使用两个指针,快指针每次前进2,慢指针每次前进1,如果最终相遇,则链表中包含循环结构。如果找到循环开始的位置呢?如下图:n0 --> n1 --> … --> nx --> … ny | | <–… …<–nx 为循环开始点, ny为快慢指针相遇点。假...
2020-02-23 12:56:25
88
转载 libnuma.so.1: cannot open shared object file
centos 6.9安装mysql 5.7.19出现以下报错:[root@fanyk bin]# ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysqldatabase/./mysqld: error while loading shared libraries: libnuma....
2019-04-12 10:30:23
811
翻译 Tensorflow Ragged Tensors
(根据官文,要安装tf-nightly)Ragged Tensors即tf提供的不规则形状,或者说可变元素长度的tensor。比如:digits = tf.ragged.constant([ [3, 1, 4, 1], [], [5, 9, 2], [6], []])或者words...
2019-03-08 16:47:42
1235
翻译 关于tensorflow中graph, collection, session和name scope的一些笔记
1 tf.Graph 和 tf.collectiontf.Graph包含两类信息:1,graph的结构信息,如operation的依赖信息。2,graph collections。Collections机制提供了对tf变量的分组管理。相关函数:tf.add_to_collection可将一组对象加入到一个collection,collection通过key来标示。(tf.Graph提供了...
2019-03-08 16:45:38
825
翻译 Tensorflow AutoGraph用法
见:https://www.tensorflow.org/guide/autograph1,Tensorflow AutoGraph能够将普通的python代码转换成Tensorflow graph code。其引用方式如下:from tensorflow import contribautograph = contrib.autographAutograph支持eager mode(...
2019-03-08 16:42:37
1177
原创 six.moves module举例
six.moves modulesix用于解决python2和python3的compatibility问题。其名字的含义是2*3=6.用法举例:1, 通过six.PY2和six.PY3可以判断当前运行环境的python版本。2, six提供了six.integer_types, six.string_types, six.class_types, six.binary_type等变量来返...
2019-02-14 13:25:53
523
原创 一个tf Estimator Summary Hook 函数
一个tf Estimator Summary Hook 函数应用场景:最近在使用tf.estimator.DNNLinearCombinedClassifier时,希望能够使用tensorboard去看一下loss的下降曲线。虽然Tensorflow有提供了tf.train.SummarySaverHook,但是研究后发现,并不适用于tf.estimator.DNNLinearCombined...
2019-01-31 20:00:32
1954
原创 saved_model_cli的使用
saved_model_cli的使用saved_model_cli提供了从命令行直接查看,调用tensorflow的方法。主要有show和run两个command。用法一,显示所有内容(tags,signatures,inputs,outputs)saved_model_cli show --all --dir 如:>> saved_model_cli show --all...
2019-01-31 10:20:57
10961
原创 tf.train.SummarySaverHook用法
tf.train.SummarySaverHook用法初始化函数如下__init__( save_steps=None, save_secs=None, output_dir=None, summary_writer=None, scaffold=None, summary_op=None)用法说明:1, save_steps和save_...
2019-01-31 10:19:36
3457
原创 如何添加一个virtual env python到jupyter notebook kernels中
1, 打开命令行,进入到要添加的virtual env中,如source activate env012, 安装ipykernel,如pip install ipykernel3, 添加当前环境下的python到jupyter notebook中的kernel里,如ipython kernel install --user --name=kernel_env014,启动jupyter not...
2019-01-21 14:14:14
611
原创 from module import * 时如何限定import的内容
from module import * 时如何限定import的内容方法一,在变量名前加一个下划线比如在module中有如下代码a = 1b = 2_c = 3_d = 4则在from module import *之后可以使用a,b,但找不到_c,_d方法二,使用__all__来定义返回的变量比如在module中有如下代码__all__ =['a','_c']a = ...
2019-01-18 09:27:21
296
原创 关于 from __future__ import
关于 from future import最近阅读一些源代码,在文件头部有这样的:from future import absolute_importfrom future import divisionfrom future import print_function这三行代码究竟有什么用呢?先说__future__,这个module包含了一些新版本的语言特性,当从__future_...
2019-01-10 20:43:39
345
原创 tf.estimator.Estimator用法
tf.estimator.Estimator用法注:本文基本上是看着文档写的。总感觉写的还是差点意思。之后多用几次,有更多经验和体会再来改进吧。Estimator是tensorflow提供的高阶API,封装了train,eval,predict,export的功能。旨在简化和标准化tensorflow的使用。几个有用的link:API Doc:https://www.tensorflow....
2019-01-10 19:25:44
711
原创 python functools 用法总结
python functools 用法总结1, functools.cmp_to_key(key)Python3的sorted函数可以给定一个key函数,如下sorted(data, key=key_func)其中key_func将一个元素转换成可用来比较的值,被称为key functions.与之相对的是comparison functions,接受两个输入,返回比较的结果。如:c...
2019-01-09 18:04:37
4000
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人