- 博客(86)
- 收藏
- 关注
原创 Zotero攻略
不用一篇一篇下PDF了,进入文章页面之后Zotero自动抓取文献,保存到你想要的位置即可。这个也是一个插件,但是大家看外文主要还是靠翻译,因此把这个特意强调一下。名字是:zotero-pdf-translate。给大家分享一下我对于Zotero的使用。可以调节视觉模式,看论文更舒服一些。
2023-12-17 22:56:01
703
2
原创 RNN介绍及Pytorch源码解析
首先,RNN模型所对应的源码在:\PyTorch\Lib\site-packages\torch\nn\modules\RNN.py文件中。当batch_size == Ture时,输入的维度一般为(batch_size * seq_len * emb_dim)。其中output的维度为(batch_size * seq_len * hidden_size *bidirectional表示RNN是双向还是单向的,单向为1,双向为2。输入分为input和h_0,当没有提供h_0的时候,h_0默认为0。
2023-12-14 13:19:59
876
原创 Linux中screen命令的用法
在服务器中运行程序时,经常会受到网络波动、电脑断网等因素的影响,这时服务器可能会终止对程序的运行。这对我们的实验进度有很大的影响。之后进入这个screen后我们就可以正常的运行程序了,当我们想要退出时,可以按CTRL+A+D,也可以直接关闭连接,程序会在后台自动运行。运行以上命令就可以回到正在运行程序的screen,因为可能有多个screen,因此需要输入对应的screen name来进行区分。最后,当我们不需要这个screen时,我们进入screen后,按CTRL+D即可删除screen并退出。
2023-03-29 09:09:01
2362
2
原创 简单记录下最近新学的code
之前我保留小数的时候一般都是转化成字符串后进行切片,但是实验结果为了精确不能这样做。图中的最后一行 VmRSS就是这个进程所占用的具体内存 约为1015M。最近论文rebuttal,做补充实验的时候新学到了几个函数,记录一下。2、查询某个进程在服务器(Linux)中所占的详细内存。1、四舍五入保留小数。
2023-03-22 17:34:36
95
原创 如何输出全部的Tensor,而不是使用省略号掠过
最近在模型的debug时经常需要输出模型每一步的Tensor,但是默认是使用省略号掠过大部分Tensor,因此我们没办法很好的观察到全部的Tensor。
2023-03-11 21:48:48
1583
原创 torch.where()函数的一些应用
我们在使用torch对tensor进行变换的时候难免会在tensor中发现NAN,使得模型不能正常运行。下面使用torch.where()来解决这一问题。接下来我们在举一个例子,假设tensor中的元素必须大于0,若等于0择置为1。首先我们创建一个tensor。如有误,还请大家多多指正!
2023-03-03 09:42:44
301
原创 关于‘lengths‘ argument should be a 1D CPU int64 tensor, but got 1D cuda:0 Long tensor报错的解决方发
复现论文的时候遇到的BUG,后来发现是torch版本升级的原因,发个博客记录一下。解决方法是需要修改RNN.py文件中的代码。
2023-03-02 10:36:31
449
2
原创 论文学习(一)——MWP-BERT: Numeracy-Augmented Pre-training for Math WordProblem Solving
记录一下自己的第一篇论文学习。
2022-07-13 16:23:09
1460
2
原创 力扣每日一题(五十九——(线性)动态规划)
仅以此纪录LeetCode所刷题目。题目描述:示例:思路:本题使用动态规划的方法去求解,我们首先建立一个dp数组,之后进行双层的for循环,dp数组中存储的是在当前位置下最长的递增子序列的长度,之后我们返回dp数组的最大值即可。代码:class Solution: def lengthOfLIS(self, nums: List[int]) -> int: list1 = [1] * len(nums) for i in .
2022-05-04 20:59:54
266
原创 力扣每日一题(五十八——周赛题目)
题目描述:示例:思路:代码:d = {"^": (-1, 0),"v": (1, 0),"<": (0, -1),">": (0, 1)}class Solution: def conveyorBelt(self, matrix: List[str], start: List[int], end: List[int]) -> int: m, n = len(matrix), len(matrix[0]) q = de.
2022-04-25 13:44:41
255
原创 TensorFlow1(二)文件读取
我们首先说一下文件读取的流程(分别讨论文本文件、图片文件以及二进制文件):1、构造文件名队列file_queue= tf.train.string_input_producer(string_tensor,shuffle = True)2、读取与解码文本: 读取:tf.TextLineReader() 解码:tf.decode_csv()图片: 读取:tf.WholeFileReader() 解码:tf.ima...
2022-04-24 22:40:30
376
原创 Python中的bisect库(二分查找库)用法
注意 以下所有数组都已经排序本篇博客将主要介绍以下几个bisect库函数的用法:1、bisect(list, num)2、bisect_left(list, num)3、bisect_right(list,num)我们在数组中进行查找的时候,一般都会出现这三种情况:1、查找的数不在数组中 2、查找的数在数组中且只有一个 3、查找的数在数组中并且有多个下面我们依次进行讨论:查找的数不在数组中import bisectlist1 = [1,3,5,7,9,11,11,1
2022-04-24 22:25:29
5540
原创 力扣每日一题(五十七——广(深)度优先遍历算法(关二维平面搜索问题))
仅以此纪录每日LeetCode所刷题目。题目描述:示例:思路:这道题需要同时使用BFS + DFS,因为题目中已经明确说明图中含有两座岛,因此我们首先使用DFS搜索出其中的任意一座岛屿,将这座岛屿的坐标放在一个队列中,下一步我们使用BFS,一个格子一个格子的向外扩充,如果某次碰到了另外一个岛屿,则返回对应的step即可。代码:class Solution: def shortestBridge(self, grid: List[List[int]]) -> .
2022-04-22 15:01:38
2289
原创 Python中collection库的一些用法
print(dir(collections))# 首先我们来查看一下collections模块里面包含的函数都有哪些['ChainMap', 'Counter', 'OrderedDict', 'UserDict', 'UserList','UserString', '_Link', '_OrderedDictItemsView', '_OrderedDictKeysView','_OrderedDictValuesView', '__all__', '__builtins__', '__.
2022-04-20 22:58:44
2706
原创 TensorFlow1(一)全连接神经网络识别mnist数据集
首先我们来介绍一下mnist数据集MNIST数据集由Yann LeCun搜集,是一个大型的手写体数字数据库,通常用于训练各种图像处理系统,也被广泛用于机器学习领域的训练和测试。MNIST数字文字识别数据集数据量不会太多,而且是单色的图像,较简单,适合深度学习初学者练习建立模型、训练、预测。MNIST数据库中的图像集是NIST(National Institute of Standards and Technology)的两个数据库的组合:专用数据库1和特殊数据库3。数据集是有250人手写数字组成,一半
2022-04-20 17:21:15
2235
2
原创 力扣每日一题(五十六——周末比赛题目)
仅以此纪录每日LeetCode所刷题目(这个周末有一场力扣杯、一场周赛、一场双周赛,真是猪脑过载)。题目描述:示例:思路:这道题我们直接模拟即可,需要注意在计算宝石的一半时,需要向下取整。代码:class Solution: def giveGem(self, gem: List[int], operations: List[List[int]]) -> int: for i in range(len(operations)):
2022-04-17 22:43:36
3407
原创 力扣每日一题(五十五——广(深)度优先遍历算法(关二维平面搜索问题))
仅以此纪录每日LeetCode所刷题目。题目描述:示例:思路:关于树的问题,我们很容易区分深度优先和广度优先,但是面对这种平面二维数组的问题。我们一般同时使用深度优先和广度优先搜索。在进行搜索遍历的时候,最重要的是我们要对已经搜索过的地方进行标记,防止重复搜索陷入循环导致程序无法正常运行。这道题我们定义一个深度优先搜索的函数,当找到一个坐标为”1“时,就开始对这个坐标的四周进行搜索,相当于遍历整个”岛屿“,深度优先搜索函数编写的时候要注意边界值和结束条件(1、越界要结束 2、根据
2022-04-15 23:08:48
2780
原创 力扣每日一题(五十四——向表达式添加括号后的最小结果)
仅以此纪录每日LeetCode所刷题目。题目描述:示例:思路:这道题的测试用例给出的长度很短,所以不用考虑到会超时。因此我们可以列举出所有“()”的可能性。因为“+”会将字符串分成两部分,括号会将两部分分成四部分,因此我们将分割后的四部分分别命名为(ABCD),记得出的结果为A*(B+C)*D,依次计算,返回最小值所对应的字符串即可。代码:class Solution: def minimizeResult(self, expression: str) ->.
2022-04-12 15:22:37
1801
原创 Python中heapq库中函数的用法
一种著名的数据结构是堆(heap),它是一种优先队列。优先队列让你能够以任意顺序添加对象,并随时(可能是在两次添加对象之间)找出(并删除)最小的元素。相比于列表方法min,这样做的效率要高得多。实际上,Python没有独立的堆类型,而只有一个包含一些堆操作函数的模块。这个模块名为heapq(其中的q表示队列)。函数库如下:1.heapify(list):将序列list改变成heap结构2.heappush(heap, item):向序列heap中插入一个item元素3.heappo.
2022-04-12 15:17:42
2212
原创 力扣每日一题(五十三——广度优先遍历算法(关于树得类型题))
仅以此纪录每日LeetCode所刷题目。题目描述:示例:思路:这道题我们需要知道一个定理,如果存在最小高度,那么最多只有两个节点。代码:class Solution: def findMinHeightTrees(self, n: int, edges: List[List[int]]) -> List[int]: in_degree, connect = [0] * n, defaultdict(list) for a, b.
2022-04-08 22:53:45
1787
原创 力扣每日一题(五十二——数组的三角和)
仅以此纪录每日LeetCode所刷题目。题目描述:示例:思路:这道题通过观察我们可以发现,如果有n个数,那么在(n-1)次变换之后即可得到答案,而在每次变换的时候,每一行的最后一个数都会消失,因此我们这道题可以进行双for循环模拟,注意总和大于十要mod10取余。代码:class Solution: def triangularSum(self, nums: List[int]) -> int: if len(nums) == 1: ..
2022-04-04 22:12:01
1933
原创 力扣每日一题(五十一——考试的最大困扰数)
仅以此纪录每日LeetCode所刷题目。题目描述:示例:思路:代码:题目描述:示例:思路:代码:题目描述:示例:思路:代码:
2022-03-31 22:02:08
1272
原创 力扣每日一题(五十——找到指定长度的回文数)
仅以此纪录每日LeetCode所刷题目。题目描述:示例:思路:代码:题目描述:示例:思路:代码:题目描述:示例:思路:代码:
2022-03-28 22:51:06
222
原创 力扣每日一题(四十九——阶乘后的零)
仅以此纪录每日LeetCode所刷题目。题目描述:示例:思路:这道题我当时的思路是得到n的阶乘res,将res由数字转化成字符,之后将res字符翻转,遍历res的各个字符,当遇到字符不是str(0)时停止,得到答案。但是这个方法的时间和空间都占用的比较多。另外的思路就是求阶乘中5的因子的个数。末尾0其实是任意正整数乘以10产生的,也就是说因子中每出现一个2和一个5,结果就会多一个末尾0。显然连续数字的阶乘里,2的因子个数是远远多于5的因子个数的。那么主要影响末尾0的个数其实是5.
2022-03-26 17:05:04
568
原创 力扣每日一题(四十八——字符串转换整数(atoi))
仅以此纪录每日LeetCode所刷题目。题目描述:示例:思路:这道题如果使用Python的正则表达式,可以一行代码完成,但是除了正则表达式这种方法,我们还可以按照题目给出的算法要求一步一步进行。因为题目的算法要求已经写得很明确了,所以我直接放代码了。注:ord()函数返回的是ascⅡ码,用来判断该字符是否为数字。代码:class Solution: def myAtoi(self, s: str) -> int: res = '0' .
2022-03-23 18:12:12
1326
原创 力扣每日一题(四十七——统计道路上的碰撞次数)
仅以此纪录每日LeetCode所刷题目。题目描述:示例:思路:这道题一开始的想法是使用模拟来解答,但是如果我们遇到'RRRRL'这种情况,我们在判断‘RL’相撞之后还需要回退到前面,因为前面的'RRRR'也有相撞,因此模拟方法相当麻烦,我们换一种思路。首先,如果directions串的前n个字符是'L',那么他们不会发生碰撞,我们可以将其剔除;同理如果directions串的后n个字符是'R',那么他们也不会发生碰撞,我们可以将其剔除。此时剩余的directions串中,一定会发..
2022-03-21 18:35:00
2903
原创 力扣每日一题(四十六——不同的二叉搜索树)
仅以此纪录每日LeetCode所刷题目。题目描述:示例:思路:这道题要返回的形式为:1、该节点存在左右节点:root.val(root.left.val)(root.right.val)2、该节点存在左节点但不存在右节点:root.val(root.left.val)3、该节点存在右节点但不存在左节点:root.val()(root.right.val)总结来说就是没有右节点可以省略右括号,但没有左节点不可以省略左括号。因此这道题使用迭代方法并分成三种情况。分别.
2022-03-19 17:28:49
2608
原创 力扣每日一题(四十五——词典中最长的单词)
仅以此纪录每日LeetCode所刷题目。题目描述:示例:思路:今天题的难点在于如何将words列表进行排序,我使用了一个lambda函数,在排序的时候首先按照长度排序,之后长度相同,将字典序大的排在前面。代码:class Solution: def longestWord(self, words: List[str]) -> str: words.sort(key=lambda x: (-len(x), x), reverse=True)
2022-03-17 22:54:04
231
原创 力扣每日一题(四十四——四数之和)
仅以此纪录每日LeetCode所刷题目(感觉要线上毕业了...)。今天做的题是以前一道题的变形,上次做这道题还没有开始写博客,这次把他们一起写上去,还可以做一个对比。题目描述:示例:思路:这道题我们需要在给出的nums列表中找到三个数让他们相加为0,一般三搜索我们会暴力的使用三循环,但是这道题使用三重循环会超时。其实我们可以将这道题简化成单循环+双指针的模式。我们首先将数组从大到小进行排序,一层循环遍历所有的数,在剩下的数中我们可以设置左右指针分别指向最小和最大值,这三个数之和.
2022-03-16 20:33:56
2827
原创 力扣每日一题(四十三——统计按位或能得到最大值的子集数目)
仅以此纪录每日LeetCode所刷题目(疫情严重了)。题目描述:示例:思路:今天学习了一个新的Python库函数。Python 的itertools库中提供了combinations方法可以轻松的实现排列组合。from itertools import combinationstest_data = ['a', 'a', 'a', 'b']for i in combinations(test_data, 2): print(i)输出:fro...
2022-03-15 17:47:35
1106
原创 力扣每日一题(四十二——二叉树的层序遍历)
仅以此纪录每日LeetCode所刷题目(今天的周赛打的巨差)。题目描述:示例:思路:第一次接触和树有关的题目,之前一直是比较排斥的,但是前几天学习了一下使用Python来写树,因此最近做几道关于树的算法题。我的思路是使用队列保存每一层的所有节点,把队列里的所有节点出队列,然后把这些出去节点各自的子节点入队列。以此来完成对每层的遍历。代码:# Definition for a binary tree node.# class TreeNode:# def __
2022-03-14 16:17:06
682
原创 力扣每日一题(四十一——统计可以提取的工件)
仅以此纪录每日LeetCode所刷题目(今天的周赛打的巨差)。题目描述:示例:思路:这道题在比赛时我使用的是一种很笨的方法,将所有零件的所谓位置找出来,使用嵌套列表存储,之后依次遍历dig数组,若其中一个不存在则打破循环(count-1),但是很不幸,在倒数第二个测试用例超时了,因此我首先遍历dig,使用二维数组记录每个单元格是否被挖掘。遍历每个工件从左上到右下,只要其中所有单元格被挖掘则可以提取该工件。代码:class Solution: def digArti.
2022-03-13 20:54:03
1132
原创 使用Python语言来实现二叉树
最近Leetcode的每日一题总是会出现跟树有关的题,因此最近学习一下用Python实现二叉树。首先,我们可以使用嵌套列表来表示二叉树,形式如下。[Root,Left,Right]下面我们介绍一些函数来介绍:第一个函数,创建二叉树:def BinaryTree(r): # 创建二叉树 return [r, [], []]第二个函数,插入左节点:def insertLeft(root, newBranch): # 插入左节点 t = root.po.
2022-03-12 21:35:34
7037
原创 力扣每日一题(三十九——将数字变成0的操作次数)
仅以此纪录每日LeetCode所刷题目(今天除夕,祝大家春节快乐。这次的题目是今日的每日一题和上周周赛做出来的两道题)。题目描述:示例:思路:我这道题直接使用模拟方法,根据题目给出的方法,对奇数和偶数分别进行处理,直到num为0时停止循环,进行输出。代码:class Solution: def numberOfSteps(self, num: int) -> int: count = 0 while num != 0: ..
2022-01-31 22:55:13
3676
原创 力扣每日一题(三十八——句子中的有效单词数)
仅以此纪录每日LeetCode所刷题目。题目描述:示例:思路:这道题我首先使用spilt将字符串分开,拆分成单词形式,注意有的情况是多空格,因此我们要判断一下单词是否存在,之后使用正则表达式判断即可。代码:class Solution: def countValidWords(self, sentence: str) -> int: count = 0 for i in sentence.split(" "): .
2022-01-27 23:00:59
3280
原创 力扣每日一题(三十七——比赛中的配对次数)
仅以此纪录每日LeetCode所刷题目。题目描述:示例:思路:我一开始使用的是模拟的方法,将这一系列的过程依次使用代码描述。总体来说就分成两种情况,当人数是奇数的时候需要先将人数减一代表轮空,当人数是偶数的时候直接除以二代表进行比赛。设置变量count来计算配对数量。代码:class Solution: def numberOfMatches(self, n: int) -> int: count = 0 while..
2022-01-27 14:57:09
2816
原创 如何解决win10资源管理器未响应
这个问题困扰了我好久,知道今天下午才得以解决。首先我们需要关闭网络,这个时候其实资源管理器已经可以运行了。之后我们在屏幕下方的任务栏中单击右键之后选择咨询和兴趣,将其关闭即可。希望对大家有所帮助!...
2022-01-23 17:16:32
1084
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人