python
eight_Jessen
这个作者很懒,什么都没留下…
展开
-
统计模型参数量、计算复杂度ptflops
ptflops/profile/stat计算模型参数原创 2022-05-25 15:29:06 · 5503 阅读 · 1 评论 -
collections.deque()
collections.deque()的速度比list构建的queue快原创 2021-08-26 00:33:01 · 125 阅读 · 0 评论 -
数据结构:堆
堆一、数据结构及实现数据结构:理解上是完全二叉树,实现上实验数组实现。模拟方式:编号为1的节点为根节点。编号为n的节点,左节点为 2n2n2n,右节点2n+12n + 12n+1,父节点n//2n // 2n//2如果节点数目为nnn,那么n/2n/2n/2的节点都是叶子节点。堆的两个要素:是完全二叉树并且父节点的值一定大于(大根堆)或小于(小根堆)它的左右孩子。二、堆的属性大根堆和小根堆大根堆:父节点的值比每一个子节点的值都要大。在小根堆,父节点的值比每一个子节点的值都要小。这个属原创 2021-08-25 17:51:11 · 80 阅读 · 0 评论 -
leetCode笔试刷题二 双指针法
一、算法讲解主要用于遍历数组,两个指针指向不同元素,也可以延伸到多个数组的多个指针。若两个指针指向同一数组,遍历方向相同且不会相交,则也称为滑动窗口(两个指针包围的区域即为当前的窗口),经常用于区间搜索。若两个指针指向同一数组,但是遍历方向相反,则可以用来进行搜索,待搜索的数组往往是排好序的。二、题型2.1 两数之和167 两数之和给定一个已按照 升序排列 的整数数组 numbers ,请你从数组中找出两个数满足相加之和等于目标数 target 。指定两个指针,左指针指向数组的开头,右指针原创 2021-06-29 09:49:32 · 145 阅读 · 0 评论 -
leetcode 96. 不同的二叉搜索树
题目描述给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。思路动态规划可以从1到n遍历所有数,每次把当前的数作为根,小于当前的数分在左边,大于当前的数分在右边。对左子树,右子树,也用相同的方法遍历。可以定义两个函数:Gn: 长度为n的数可以构造的二叉搜索树的数目F(i,n): 以 i 为根、序列长度为 n 的不同二叉搜索树个数 (1≤i≤n)。所以有Gn=∑i=1nF(i,n)Gn = \sum_{i =原创 2021-06-23 23:48:09 · 108 阅读 · 2 评论 -
leetcode 222.完全二叉树的节点:二分法/深度遍历法
1、题目描述给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。示例1:输入:root = [1, 2, 3, 4, 5, 6]输出:6示例2:输入:root = []输出:0示例3:输入:root = [1]输出:1 # 至于为什么要这么搜索,这里是找到原创 2021-05-03 12:08:16 · 218 阅读 · 0 评论 -
python多进程、多线程
1、python多线程使用一个例子来学习多线程。建议自己敲一遍。python多线程是通过threading模块的Thread实现。创建线程对象 t = thread.Thread()启动线程 t.start()import threadingimport timedef say(name): print("你好%s at %s"%(name, time.ctime())) time.sleep(2) print("结束%s at %s"%(name, time.ctime()))原创 2021-03-25 12:09:59 · 1234 阅读 · 0 评论 -
leecode 300. 动态规划最长递增子序列
1. 题目描述给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。示例输入:nums = [10,9,2,5,3,7,101,18]输出:4解释:最长递增子序列是 [2,3,7,101],因此长度为 4 。输入:nums = [0,1,0,3,2,3]输出:4输入:nums = [7,7,7,7,7,7,7]原创 2021-03-12 17:24:34 · 148 阅读 · 0 评论 -
catboost 相关记录cat_features must be integer or string
1. cat_features must be integer or string, real number values and NaN values should be converted to string.catfeat = [33, 34, 36, 49, 50]model_k.fit(train_df, label, cat_features = catfeat)主要问题是 train_df[catfeat]里面有的数不是整数或者string。需要先对数据做一次转换for i in c原创 2021-03-12 12:11:25 · 1124 阅读 · 0 评论 -
leetcode: 剑指Offer 35. 复杂链表的复制 哈希表法
题目描述请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。示例输入:head = [[7,null],[13,0],[11,4],[10,2],[1,0]]输出:[[7,null],[13,0],[11,4],[10,2],[1,0]]输入:head = [[3,null],[3,0],[3,null]]输出:[[3,null],[3,0],[原创 2021-03-08 16:50:29 · 157 阅读 · 1 评论 -
python编程:从入门到实践(复习总结篇)
1、Ch2 变量和简单数据类型1.1 字符串1.1.1 修改大小写s.title()s.lower()s.upper()1.1.2 合并(拼接)字符串+1.1.3 使用制表符或换行符来添加空白\n \t1.1.4 删除空白# 去掉开头和结尾的字符串s = s.strip()# 去掉开头的字符串s = s.lstrip()# 去掉结尾的字符串s = s.rstrip()1.2 数字1.2.1 整数1.2.2 浮点数!包含的小数位数可能是不确定的>>原创 2021-03-07 22:25:59 · 467 阅读 · 0 评论 -
leetcode: 链表.206.反转链表 迭代法、递归法、列表存储法
题目描述反转一个单链表示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL解题思路1.迭代方法从头开始遍历链表。如果是空链表或者只有一个节点,则直接返回。如果不是,则将节点的next指向前一个节点,注意,原来的head的next此时为空。我们需要两个指针,一个指向当前节点p,一个指向下个节点q。修改完当前节点后,让p=q,q指向下个节点,迭代下去,直到链表结尾。class原创 2021-03-06 17:05:34 · 92 阅读 · 0 评论 -
leetcode:双指针 287. 寻找重复数 三种方法
题目描述给定一个包含 n + 1 个整数的数组 nums ,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设 nums 只有 一个重复的整数 ,找出 这个重复的数 。示例:输入:nums = [1,3,4,2,2]输出:2输入:nums = [3,1,3,4,2]输出:3输入:nums = [1,1]输出:1输入:nums = [1,1,2]输出:1解题思路1.使用python里面set得到出现的数字,再使用count得到每个数出现的次数原创 2021-03-05 22:19:52 · 323 阅读 · 0 评论 -
leetcode: 双指针 86.分隔链表
题目描述给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。你应当 保留 两个分区中每个节点的初始相对位置示例输入:head = [1,4,3,2,5,2], x = 3输出:[1,2,2,4,3,5]示例2:输入:head = [2,1], x = 2输出:[1,2]思路用两个指针p1p1p1, p2p2p2,当所在节点的值小于xxx的时候,两个指针都移动,当节点的值开始大于或等于xxx的原创 2021-03-05 20:23:21 · 125 阅读 · 1 评论 -
leetcode 链表:141. 142.环形链表
题目描述给定一个链表,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。如果链表中存在环,则返回 true 。 否则,返回 false 。示例1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中原创 2021-03-05 17:43:52 · 102 阅读 · 0 评论 -
leetcode:剑指Offer 22 链表的倒数第K个节点和链表的中间节点
题目描述链表的倒数第K个节点、链表的中间节点,都使用快慢指针的方法解决输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。示例:给定一个链表: 1->2->3->4->5, 和 k = 2.返回链表 4->5.解题思路使用1个指针,先移动k-1步(因为题目最后一原创 2021-03-05 16:44:15 · 120 阅读 · 0 评论 -
leetcode 剑指Offer 21.调整数组顺序使奇数位于偶数前,双指针20ms超过98%
题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。示例输入:nums = [1,2,3,4]输出:[1,3,2,4]注:[3,1,2,4] 也是正确的答案之一。解题思路1、双指针法使用两个指针,一个指向输入list的起始位置p1,一个指向末端位置p2。p1逐步向后移动,直到遇到偶数p2逐步向前移动,直到遇到奇数同时每次判断,p1,p2是否刚好满足同时p1指向偶数,p2指向奇数,此时交换p1,p2的指,p1,p2继原创 2021-03-05 10:37:26 · 78 阅读 · 1 评论 -
leetcode:剑指Offer 50. 第一个只出现一次的字符
题目描述:在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。示例:s = “abaccdeff”返回 “b”s = “”返回 " "解题思路:思路1. 有序哈希表将输入s遍历一遍,同时用一个字典存储每个字符出现的次数。然后遍历字典,返回第一个次数为1的字符,遍历完没有找的的话则返回空格。代码:class Solution(object): def firstUniqChar(self, s): """原创 2021-03-04 16:03:18 · 118 阅读 · 1 评论 -
leetcode:剑指 Offer 49. 丑数,动态规划
题目描述我们把只包含质因子 2、3 和 5 的数称作丑数(Ugly Number)。求按从小到大的顺序的第 n 个丑数示例:输入: n = 10输出: 12解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。解题思路:每个丑数都是由2,3,5相乘得到的,如果已经得到n−1n - 1n−1个数,则第nnn个数可以由前面的数得到,并且是有一定规律的,本题属于动态规划。我们即第n个数为LnL_nLn,则有Ln=min(La∗2,Lb∗3,Lc∗5)原创 2021-03-04 12:01:22 · 144 阅读 · 1 评论 -
leetcode: 剑指Offer 16.数值的整数次方(快速幂法)
题目描述实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。示例1输入: 2.00000, 10输出: 1024.00000示例2输入: 2.00000, -2输出: 0.25000解释: 2-2 = 1/22 = 1/4 = 0.25解题思路:如果nnn为偶数,那可以写成 (x2)n//2(x^2)^{n//2}(x2)n//2如果nnn为奇数,则为x(x2)n/原创 2021-03-03 20:37:30 · 111 阅读 · 1 评论 -
leetcode:剑指Offer15.二进制中1的个数,位运算、移位法
1、题目描述请实现一个函数,输入一个整数(以二进制串形式),输出该数二进制表示中 1 的个数。例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。示例1输入:00000000000000000000000000001011输出:3解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 ‘1’。示例2输入:00000000000000000000000010000000输出:1解释:输入的二原创 2021-03-03 19:38:15 · 88 阅读 · 1 评论 -
leetcode:剑指Offer11.旋转数组的最小数字
题目描述:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。即输入数组是一个递增数组在某个位置上进行了旋转。例如数组[0, 1, 2, 4, 5, 6, 7]可能变为[4, 5, 6, 7, 0, 1, 2]示例1输入:[3,4,5,1,2]输出:1示例2输入:[2,2,2,0,1]输出:0解题方法:1、线原创 2021-03-03 16:30:26 · 85 阅读 · 1 评论 -
leetcode:剑指offer 04.二维数组中的查找,双指针12行代码搞定
题目描述:在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:[[1, 4, 7, 11, 15],[2, 5, 8, 12, 19],[3, 6, 9, 16, 22],[10, 13, 14, 17, 24],[18, 21, 23, 26, 30]]给定 target = 5,返回 true。给定 target =原创 2021-03-03 11:07:13 · 63 阅读 · 0 评论 -
leetcode:剑指offer56 数组中数字出现的次数
56-I 数组中找出出现次数为1的数,这种属于位运算题目描述:一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。示例1:输入:nums=[4,1,4,6]输出:[1,6]或[6,1]class Solution(object): def singleNumbers(self, nums): """ :type nums: List[int]原创 2021-03-01 21:20:18 · 119 阅读 · 0 评论 -
leetcode:剑指offer53 在排序数组中查找数字
题目描述统计一个数字在排序数组中出现的次数。示例 1输入: nums = [5,7,7,8,8,10], target = 8输出: 2解题方法二分法ps:python, list.count(a)可以得到数组list里面a出现的次数原创 2021-03-01 21:19:44 · 73 阅读 · 0 评论 -
leetcode:剑指offer52 两个链表的第一个公共节点
题目描述:解题思路:如果把两个链表都遍历一遍,先遍历A,再遍历B和先遍历B再遍历A,遍历次数是一样的。而且如果两个链表后面一样的节点,那么遍历完第一个链表后遍历第二个时,便可以开始做相等比较。代码:# Definition for singly-linked list.# class ListNode(object):# def __init__(self, x):# self.val = x# self.next = Noneclass So原创 2021-03-01 15:22:43 · 82 阅读 · 0 评论 -
pip生成requirement.txt
生成requirement.txt文件pip freeze > requirements.txt需要输出内容与 pip list 一致,需使用 pip freeze -all对应的安装pip install -r requirements.txt原创 2021-03-01 11:12:16 · 219 阅读 · 0 评论 -
leetcode 628 三个数的最大乘积
题目给你一个整型数组 nums ,在数组中找出由三个数组成的最大乘积,并输出这个乘积。示例输入:nums = [1,2,3]输出:6输入:nums = [1,2,3,4]输出:243<=nums.length<=1043 <= nums.length <= 10^43<=nums.length<=104−1000<=nums[i]<=1000-1000 <= nums[i] <= 1000−1000<=nums[i原创 2021-02-02 21:49:45 · 86 阅读 · 0 评论 -
leetcode:动态规划:53.最大子序和
题目给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。输入:nums = [0]输出:0假设有数组长度为nnn,下标我们记为000到n−1n-1n−1,最大子序和我们记为fmaxsubf_{maxsub}fmaxsub,那么我们得到:fmaxsub[0]f_{maxsub[0]}fmaxs.原创 2021-02-02 21:12:12 · 127 阅读 · 0 评论 -
leetcode:数组:1467自矩形查询
题目描述请你实现一个类 SubrectangleQueries ,它的构造函数的参数是一个 rows x cols 的矩形(这里用整数矩阵表示),并支持以下两种操作:1. updateSubrectangle(int row1, int col1, int row2, int col2, int newValue)用 newValue 更新以 (row1,col1) 为左上角且以 (row2,col2) 为右下角的子矩形。2. getValue(int row, int col)返回矩形中坐标 (原创 2021-02-01 22:25:35 · 100 阅读 · 0 评论 -
leetcode:数组:简单:主要元素
题目描述数组中占比超过一半的元素称之为主要元素。给定一个整数数组,找到它的主要元素。若没有,返回-1。示例1输入:[1,2,5,9,5,9,5,5,5]输出:5示例2输入:[3,2]输出:-1示例3输入:[2,2,1,1,1,2,2]输出:2你有办法在时间复杂度为 O(N),空间复杂度为 O(1) 内完成吗?思路,只要记录下出现的元素已经每个元素出现的次数,次数大于list长度的二分之一,就可以了解法1,用collection来提取元素和每个元素出现的次数impo原创 2021-01-28 19:14:20 · 106 阅读 · 0 评论 -
Flax深度学习框架
今天看代码看到一个新框架,Flax,由Google研究人员开发的Flax是基于JAX上构建的文档链接githubJAXJAX是一个函数转换的集合,例如实时编译和自动微分,它是用一个API在XLA上实现的瘦包装器,API本质上是NumPy和SciPy的替代品。事实上,开始使用JAX的一种方法是将其视为一个加速器支持的NumPy。import jax.numpy as np# Will be seamlessly executed on an accelerator such as GPU/TP原创 2021-01-11 15:56:30 · 3963 阅读 · 0 评论 -
pytorch torch.nn函数学习记录
torch.nn.Embedding官网介绍torch.nn.Embedding(num_embeddings: int, embedding_dim: int, padding_idx: Optional[int] = None, max_norm: Optional[float] = None, norm_type: float = 2.0, scale_grad_by_freq: bool = False, sparse: bool = False, _weight: Optional[torc原创 2021-01-10 17:32:21 · 450 阅读 · 1 评论 -
解决:linux开screen后,进去conda环境,安装包比如torch import不成功
最近开远程screen后,发生进入screen会话激活conda环境后,import torch不成功主要原因是在开screen之前,先激活了相应的conda环境比如下面的操作,先激活了我的cuda10环境,然后开screen接下来我在screen会话中激活cuda10环境,我是import torch不成功的解决方法:在开screen会话之前,不要先激活conda虚拟环境,不要在conda环境下开screen更深的原因没有继续查...原创 2020-12-14 16:08:15 · 1207 阅读 · 0 评论 -
matlab 读取tiff文件
参考自matab文档创建一个Tiff对象并从TIFF文件中读取数据t = Tiff('peppers_RGB_tiled.tif','r');imageData = read(t);显示图像。imshow(imageData);原创 2020-09-24 10:28:23 · 4718 阅读 · 0 评论 -
PIL,Cannot handle this data type;ReLU,PReLU,LeakyReLU
使用PIL保存图片,保存代码的前几行是在这里插入代码片原创 2020-09-24 09:51:38 · 408 阅读 · 0 评论 -
图像处理之双线性插值法,双三次插值
图像处理之双线性插值法双三次插值(BiCubic插值)看了一些博客,上面两篇不错原创 2020-09-08 19:57:24 · 1058 阅读 · 0 评论 -
超分评价指标
1. PSNR(峰值信噪比)PSNR Peak Signal-to-Noise Ratio衡量图像质量的指标。维基百科解释表示信号最大可能功率和影响它的表示精度的破坏性噪声功率的比值的工程术语。由于许多信号都有非常宽的动态范围,峰值信噪比常用对数分贝单位来表示。计算方法:先计算MSEMSE=1mn∑i=0m−1∑j=0n−1[I(i,j)−K(i,j)]MSE=\frac{1}{mn}\sum^{m-1}_{i=0}\sum^{n-1}_{j=0}[I(i,j)-K(i,j)]MSE=m原创 2020-08-20 20:22:19 · 2115 阅读 · 0 评论 -
ROC曲线:接收者操作特征曲线
接收者操作特征曲线(receiver operating characteristic curve,或者叫ROC曲线)在做决策时,ROC分析能不受成本/效益的影响,给出客观中立的建议分类模型(又称分类器,或诊断)是将一个实例映射到一个特定类的过程。二元分类模型的个案预测有四种:这四种结局可以画成2 × 2的混淆矩阵:ROC空间ROC空间将伪阳性率(FPR)定义为 X 轴,真阳性率(TPR)定义为 Y 轴。TPR:在所有实际为阳性的样本中,被正确地判断为阳性之比率。(TPR=TP/(TP+原创 2020-08-13 09:32:21 · 3890 阅读 · 0 评论 -
论文笔记:VGG设计理解
Very small (3 × 3) convolution filters1.IntroductionUtilised smaller receptive window size and smaller stride of the first convolutional layer.Training and testing the networks densely over the whole image and over multiple scales.Address another impo原创 2020-08-11 20:28:42 · 230 阅读 · 0 评论