学习经验记录
文章平均质量分 66
mhuang..
这个作者很懒,什么都没留下…
展开
-
什么时候可以用到强化学习?强化学习怎么用?
我相信很多像我一样的初学者在学习强化学习的的过程会有一种困惑:强化学习内容搞懂了,算法流程也明白了,但是怎么用在自己的研究领域或者应用上呢?换句话说,什么样的情况可以用强化学习解决呢?原创 2022-11-25 15:44:01 · 1046 阅读 · 2 评论 -
常用Pandas读取excel(或txt)部分行列并输出
用.loc()和.iloc方法,前者是用行列名称(新版python中.loc()方法也可以用索引),后者是索引。取整个表的部分行列,需要用到.reindex(index=,columns=,).reindex()其他参数的用法详见。原创 2022-09-08 17:36:25 · 7275 阅读 · 1 评论 -
迁移学习-如何使用预训练权重,冻结部分层权重训练
迁移学习在计算机视觉领域中是一种很流行的方法,因为它可以建立精确的模型,耗时更短。利用迁移学习,不是从零开始学习,而是从之前解决各种问题时学到的模式开始。这样,我们就可以利用以前的学习成果。原创 2022-09-05 00:28:06 · 4849 阅读 · 3 评论 -
如何理解向量点积和在空间上映射的关系
摘自《Essence of linear algebra》系列视频,非常精彩。B站上有全集~Dot Product我们都知道,向量的点积是这么做的:其几何解释为投影相乘:通过投影,我们可以理解为什么点积为0(正交),为什么点积可以为负。点积还具有symmetry。假设u和v点积,对称性即:无论是v在u上作投影再乘,还是u在v上作投影再乘,结果都是一样的。这一点不太好理解,但又至关重要。我们下面来解释一下:假设u比v的范数大。我们在u的方向上取w,使得w的范数等于v的.原创 2022-05-09 19:35:36 · 825 阅读 · 1 评论 -
python刷题-二分法小总结
二分法要求:二分查找的对象必须是有序的(单调)时间复杂度:查找的时间复杂度为logN(所以适用于数据规模比较大的情况)二分查找的内部查找顺序:(直接查找目标值or和左右侧逼近值(包括目标值))"""第一种二分查找法,查找到目标值即返回,向目标值逼近的方向是不确定的,因为left和right都可以移动"""def binary_1(left, right, target): while left < right: mid = (left+right) &..原创 2022-03-08 17:52:48 · 586 阅读 · 0 评论 -
python刷题-单调栈
力扣https://leetcode-cn.com/problems/sum-of-subarray-ranges/暴力法:遍历每个序列的最大值最小值,时间复杂度为o(n2)class Solution: def subArrayRanges(self, nums: List[int]) -> int: dp = 0 for i in range(1, len(nums)): dpmin = nums[i]原创 2022-03-04 13:43:54 · 158 阅读 · 0 评论 -
python刷题-dfs回朔经典习题(全局变量,bool类型加减运算)
最多1601. 最多可达成的换楼请求数目心得:这道dfs题是对所有情况遍历然后取满足情况的解,而我当时之所以死磕这题半天没磕出来,是因为一直想去控制搜索的方向,在遍历的过程中去给遍历限制条件。这其实也就对应着解dfs题的两种思路,一种是从整体出发“全扫描”最后去筛选结果,一种则是在遍历的时候有选择性的去遍历(像下面的解数独和N皇后问题都是这种思路), 而这道题如果也用这种思路去想的话,虽然可以找到符合题意的特解,就很难去找所有情况中的最优解(因为找到特解后不好控制让他重新回朔遍历找最优解),所以找特解的原创 2022-03-02 12:11:10 · 878 阅读 · 0 评论 -
Python刷题-最长回文子串(dp)
解法一:双指针遍历(从外向内)思路:从最大子串(自身)开始遍历,逐渐缩小子串长度(右边界right向左移),对于每一个长度要注意遍历该长度下的所有子串代码:class Solution_double: def longestPalindrome(self, s: str) -> str: def judge(i, j) -> bool: while i < j: if s[i] != s[j]:...原创 2022-02-26 00:07:43 · 555 阅读 · 0 评论 -
python刷题-dfs & bfs
1.通过dfs或bfs遍历一个二维数组1020. 飞地的数量给你一个大小为m x n的二进制矩阵grid,其中0表示一个海洋单元格、1表示一个陆地单元格。一次移动是指从一个陆地单元格走到另一个相邻(上、下、左、右)的陆地单元格或跨过grid的边界。返回网格中无法在任意次数的移动中离开网格边界的陆地单元格的数量。示例 1:输入:grid = [[0,0,0,0],[1,0,1,0],[0,1,1,0],[0,0,0,0]]输出:3解释:有三个 1...原创 2022-02-15 21:47:21 · 545 阅读 · 0 评论 -
python刷题-dp(最大正方形)+最大公约数问题
目录1.最简分数(公约数问题)2.最大正方形3.最小路径和4. 杨辉三角官方题解:(学学滚动数组的用法)1.最简分数(公约数问题)1447. 最简分数给你一个整数n,请你返回所有 0 到 1 之间(不包括 0 和 1)满足分母小于等于n的最简分数。分数可以以任意顺序返回。示例 1:输入:n = 2输出:["1/2"]解释:"1/2" 是唯一一个分母小于等于 2 的最简分数。示例 2:输入:n = 3输出:["1/2...原创 2022-02-10 23:58:08 · 773 阅读 · 0 评论 -
python刷题-动态规划
目录一、动态规划题型1.计数问题3.求存在性二、动态规划的组成部分☆以一道题为例:小结一、动态规划题型1.计数问题-有多少种方式走到右下角-有多少种方法选出k个数使得和为sumhttps://leetcode-cn.com/problems/unique-paths/2.求最大最小值-从左上角走到右下角路径的最大数字和-最长上升子序列长度https://leetcode-cn.com/problems/maximum-product-s原创 2022-02-09 23:48:19 · 196 阅读 · 0 评论 -
学习笔记-动态规划(基础)+例题
目录一、动态规划题型1.计数问题3.求存在性二、动态规划的组成部分☆以一道题为例:小结一、动态规划题型1.计数问题-有多少种方式走到右下角-有多少种方法选出k个数使得和为sumhttps://leetcode-cn.com/problems/unique-paths/2.求最大最小值-从左上角走到右下角路径的最大数字和-最长上升子序列长度https://leetcode-cn.com/problems/maximum-product-s原创 2022-02-09 23:07:55 · 347 阅读 · 1 评论 -
python刷题-双排序保证严格递增+for循环中增删元素对索引的影响
1.题目你正在参加一个多角色游戏,每个角色都有两个主要属性:攻击 和 防御 。给你一个二维整数数组 properties ,其中 properties[i] = [attacki, defensei] 表示游戏中第 i 个角色的属性。如果存在一个其他角色的攻击和防御等级 都严格高于 该角色的攻击和防御等级,则认为该角色为 弱角色 。更正式地,如果认为角色 i 弱于 存在的另一个角色 j ,那么 attackj > attacki 且 defensej > defensei 。返回..原创 2022-01-28 23:36:52 · 93 阅读 · 0 评论 -
python刷题-检测正方形(哈希表法)+collections模块+sorted()
1、题目给你一个在 X-Y 平面上的点构成的数据流。设计一个满足下述要求的算法:添加 一个在数据流中的新点到某个数据结构中。可以添加 重复 的点,并会视作不同的点进行处理。给你一个查询点,请你从数据结构中选出三个点,使这三个点和查询点一同构成一个 面积为正 的 轴对齐正方形 ,统计 满足该要求的方案数目。轴对齐正方形 是一个正方形,除四条边长度相同外,还满足每条边都与 x-轴 或 y-轴 平行或垂直。实现 DetectSquares 类:DetectSquares() 使用空数据结构初始原创 2022-01-26 18:58:06 · 1337 阅读 · 0 评论 -
numpy和tensor类型更改(增加或减少)参数维度(reshape)
首先需注意的是numpy和tensor的维度排列顺序不一样,这里拿一张图片的shape举例:to_tensor = torchvision.transforms.ToTensor()img = cv2.imread("sample.jpg")img_tensor = to_tensor(img)print(type(img)) # <class 'numpy.ndarray'>print(img.shape) # (450, 500, 3)print(type(img_ten原创 2021-12-20 11:57:52 · 2599 阅读 · 0 评论 -
综述numpy数组索引和列表索引的用法与比较
列表因为里面元素可为不同类型,例如b = [1]a = ["str", 1.0, 2, None, b]print(a) # ['str', 1.0, 2, None, [1]]所以其功能仅支持索引,切片,还有一个特殊用法:列表推导式。(当然List类方法有很多,对应有很多其他功能,本文这里只讨论其索引的用法)b = [1]a = ["str", 1.0, 2, None, b]# 切片print(a[::-1]) # 倒序 [[1], None, 2, 1.0, 'str.原创 2021-12-16 23:58:47 · 805 阅读 · 0 评论 -
python中numpy.where的两种用法以及zip()的用法
首先numpy.where(condition, x=None, y=None)可接收三个参数,condition表示待操作的numpy.array类型数组的逻辑判断, x和y是可选参数。用法一:当x,y为默认值时,对应用法一,此时where的作用为寻找在参数condition情况下数组内匹配的值,对于不同的输入,其返回python中numpy.where的两种用法以及zip()的用法的值是不同的。 当输入(参数)是一维数组时,返回值是一维的索引,只有一组索引数组。>&...原创 2021-10-31 11:44:06 · 709 阅读 · 0 评论 -
1.用Python(opencv)在彩色图片中插入数字水印原理及代码
这里介绍用opencv去操作的最简单的一种方法的代码流程,示例用黑白数字,实际上只要是黑白纯色的二值图像都可以用该方法去插入提取水印。原理:嵌入时先将数字水印处理成二值(0 1)图像, 然后利用位操作插入原图的最后一个位平面,这样在观感上不会对原图造成任何影响。提取时相反操作即可。from operator import modimport cv2import numpy as npdef show(img_name, img): cv2.imshow(img.原创 2021-10-17 14:49:48 · 2314 阅读 · 0 评论