自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(65)
  • 收藏
  • 关注

原创 C++ compilation of rule ‘//tensorflow/core/kernels:XXX‘ failed

在编译TensorFlow c++的时候报这个错,原因是编译过程中swap空间不足引起的如果是低版本的编译,可以在编译后面加上 --local_resources 2048,.5,1.0bazel build --config=opt --config=cuda //tensorflow:libtensorflow_cc.so --local_resources 2048,.5,1.0如果是高版本的编译,可以加上 --local_ram_resources=200 --local_cpu_re

2021-05-03 14:10:08 1199

原创 tf2 freeze冻结为pb(支持单输入和多输入)

tensorflow2.x 训练后的模型文件为 .data-00000-of-00001 和 .index,然后一般转化都是转化为pb模型和variables和assets文件,如下图所示但是可能在某种场景,需要我们使用的是freeze graph,也就是以上三个文件冻结为一个pb文件。看到有人说训练时要转成.h5文件,这个方法我没试过,但是我的模型已经训完了,再训练太麻烦了,freeze方法如下。单输入首先通过 saved_model_cli 查看图中pb文件信息根据输出信息可得,是单输入的模型

2021-04-28 16:52:07 1092 2

原创 tf c++获取打印输出tensor的值

假如 predict 是你要获取的tensor的值,其类型为 tensorflow::Tensorauto features_ptr = predict.tensor<float, 4>();auto N = (int) predict.dim_size(0);auto H = (int) predict.dim_size(1);auto W = (int) predict.dim_size(2);auto C = (int) predict.dim_size(3);for (in

2021-04-20 17:21:05 1503 1

原创 opencv c++ mat转vector

数据类型float根据具体场景不同而不同 std::vector<std::vector<float>> vec; for (int x = 0; x < mat.rows; x++) { for (int y = 0; y < mat.cols; y++) { vec[x][y] = mat.at<float>(x, y);

2021-04-20 17:04:17 1065

原创 failed call to cuDevicePrimaryCtxRetain: CUDA_ERROR_OUT_OF_MEMORY: out of memory; total memory repor

tensorflow 遇到这个问题,很有可能原因是:在多卡的机器上,别人占用了其中几个GPU,而你在跑代码的时候,把别人占用的GPU也读进去了。在全局设置一下你需要用到的GPU即可。import osos.environ["CUDA_VISIBLE_DEVICES"] = '2, 3' #use GPU with ID=2, 3...

2021-04-20 17:00:02 1440

原创 Completed with errors. See log at /var/log/cuda-installer.log for details

ubuntu安装cuda时出现了标题这个错误,原因是:还没装显卡驱动或者是显卡驱动没装成功!安装显卡驱动可以参考:这里之后安装cuda可以参考:这里应该就不会出现这样的错误啦!

2021-03-16 21:55:04 3411

原创 please report a bug to PyTorch. We don‘t have an op for aten

.pth转pt遇到这个问题:RuntimeError: hasSpecialCase INTERNAL ASSERT FAILED at /opt/conda/conda-bld/pytorch_1579027003190/work/torch/csrc/jit/passes/alias_analysis.cpp:300, please report a bug to PyTorch. We don’t have an op for aten原代码如下: model = Model(opt)

2020-09-08 17:41:10 2576

原创 LeetCode:无重复字符的最长子串(C++)

题目描述:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。思路:滑窗法:使用哈希存放字符出现的次数右端点开始向右遍历,若当前遍历的字符在窗口内...

2020-03-21 19:30:20 184

原创 LeetCode:最长回文子串(C++)

题目描述给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例1输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案思路:动态规划:当 i == j,dp[i][j]是回文子串(单字符都是回文子串);当j - i < 3,只要s[i] == s[j],则dp[i][j]是回文子串(如 aa,aba),否则...

2020-03-21 19:06:51 215

转载 Leetcode:两数相加(C++)

给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。思路:1.相加的过程中可能存在进位的操作,所以需要采用一个变量carry来记录进位的情况,初始化carry = 0;2.因为链表...

2020-03-08 21:42:38 288

转载 剑指offer:字符串的排列(C++)

题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。**思路:**递归方法使用交换的的思路,我们可以将字符串看成两部分,第一个字符和后面的字串,将第一个字符和后面的每一元素互换,...

2020-03-03 09:49:44 107

原创 剑指offer:二叉搜索树与双向链表(C++)

题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。思路: 中序遍历二叉搜索树即为有序的序列,再递归建立双向链表即可。C++/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) ...

2020-03-02 20:33:25 117

转载 剑指offer:复杂链表的复制(C++)

题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)思路:拷贝一个带有random指针的链表。首先想到的便是,复制原链表的的每一个节点,并用next连接起来,在遍历原链表的时候,将原节点和新复制的节点的映射存进map中...

2020-03-02 19:51:23 103

原创 剑指offer:二叉树中和为某一值的路径(C++)

题目描述输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)C++/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNo...

2020-03-01 23:52:10 148

转载 剑指offer:二叉搜索树的后序遍历序列(C++)

题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。思路: 二叉树的后序遍历也就是先访问左子树,再访问右子树,最后访问根节点,所以不难发现,所给的数组最后一个元素一定是二叉搜索树的根节点,而如果数组是二叉搜索树的后续遍历的话,就一定会根据数值划分两部分,左边是根节点的左子树,剩下的部分则是根节点的...

2020-03-01 22:40:03 211

原创 剑指offer:从上往下打印二叉树(C++)

题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。思路: 用队列实现,先将根结点入队,依次入队该结点的左右结点,再依次出队打印即可。C++/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL...

2020-03-01 22:20:53 97

原创 剑指offer:栈的压入、弹出序列(C++)

题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)**思路:**建立一个临时栈,每次将pushV中的数值push进栈时,判断栈顶值与...

2020-03-01 22:06:20 89

原创 剑指offer:包含min函数的栈(C++)

题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。注意:保证测试中不会当栈为空的时候,对栈调用pop()或者min()或者top()方法。思路: 建立两个栈s1和s2。s1用来push进所有的value,而s2则用来push进当前的最小值。当s2为空时,两个栈同时push进value;当s2不为空时,s1则push进该val...

2020-03-01 20:26:10 92

原创 剑指offer:顺时针打印矩阵(C++)

题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.思路: 定位左上结点和右下结点,分成四个部分打印,从左到右、从上到下、从右到左、从下到上,每次打印完则去掉当前行/...

2020-03-01 19:06:05 107

原创 剑指offer:二叉树的镜像(C++)

题目描述操作给定的二叉树,将其变换为源二叉树的镜像。输入描述:思路: 递归地交换左右结点。C++/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/...

2020-03-01 16:41:01 137

原创 剑指offer:树的子结构(C++)

题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)思路: 主函数递归找到相同的根节点,子函数递归判断是否完全相同。C++/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), ...

2020-03-01 16:22:27 66

原创 剑指offer:合并两个排序的链表(C++)

题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。思路一: 递归。/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: Li...

2020-03-01 15:21:16 88

原创 剑指offer:反转链表(C++)

题目描述输入一个链表,反转链表后,输出新链表的表头。思路: 设置三个指针,一个指向上一个结点,一个指向当前结点,一个指向下一个结点。C++/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {pu...

2020-03-01 14:58:32 93

原创 剑指offer:链表中倒数第k个结点(C++)

题目描述输入一个链表,输出该链表中倒数第k个结点。思路: 总长度减去倒数第k个位置即为链表中倒数第k个结点的位置。这里的倒数第k个,下标是从1开始。C++/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solut...

2020-03-01 14:34:49 75

原创 剑指offer:二进制中1的个数(C++/Python)

题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。思路: 只需要将n与1进行相与运算,看结果是不是1,然后再将1左移,再循环上述步骤。C++class Solution {public: int NumberOf1(int n) { unsigned int flag = 1; int count = 0; ...

2020-03-01 13:46:47 118

原创 剑指offer:矩形覆盖(C++/Python)

题目描述我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2n的大矩形,总共有多少种方法?比如n=3时,23的矩形块有3种覆盖方法:思路: 所得递推公式和跳台阶问题一样,代码也相同C++class Solution {public: int rectCover(int number) { if (number ==...

2020-03-01 13:23:24 254

原创 剑指offer:跳台阶(C++)

题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。思路: 例如,跳上一个6级台阶台阶,有多少种跳法;由于青蛙一次可以跳两阶,也可以跳一阶,所以我们可以分成两个情况 1、青蛙最后一次跳了两阶,问题变成了“跳上一个4级台阶台阶,有多少种跳法” 2、青蛙最后一次跳了一阶,问题变成了“跳上一个5级台阶台阶,有多...

2020-03-01 11:37:40 183

原创 剑指offer:斐波那契数列(C++/Python)

题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39思路一: 递归。空间复杂度大,牛客网运行不通过。代码如下。C++class Solution {public: int Fibonacci(int n) { if (n == 0) return 0; ...

2020-03-01 11:20:04 265 1

转载 剑指offer:旋转数组的最小数字(C++)

题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。思路一: 暴力解法,一个一个比较,时间复杂度较高,代码较简单,略。思路二:我们注意到旋转之后的数组实际上可...

2020-03-01 10:56:53 96

原创 剑指offer:用两个栈实现一个队列(C++)

题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。思路:当stack2中不为空时,在stack2中的栈顶元素是最先进入队列的元素,可以弹出。若stack2为空时,把stack1中的元素逐个弹出并压入stack2。由于先进入队列的元素被压倒stack1的栈底,经过弹出和压入之后就处于stack2的栈顶,有可以直接弹出。如果有新元素d插入,我们直接把...

2020-03-01 10:07:36 107

原创 剑指offer:重建二叉树(C++)

题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。思路: 重建出图2.6所示的二叉树并输出它的头结点。前序遍历序列的第一个元素为根结点的值,然后在中序遍历序列中寻找根节点的值的位置(索引)。从中...

2020-02-29 23:25:04 84

原创 剑指offer:从尾到头打印链表(C++)

题目描述输入一个链表,按链表从尾到头的顺序返回一个ArrayList。思路: 用一个栈从头到尾存放,再依次取出来即可。/*** struct ListNode {* int val;* struct ListNode *next;* ListNode(int x) :* val(x), next(NULL) ...

2020-02-29 23:08:26 66

原创 剑指offer:替换空格(C++/Python)

题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。思路: 先计算出空格数,即可知道新的字符串的长度。然后设计两个指针,一个指向原字符串长度尾,一个指向新的长度尾,非空格时则复制,遇到空格时则赋值“%20”,直到遍历完。C++class Solution {public...

2020-02-29 22:37:09 81

原创 剑指offer:二维数组中的查找(C++/Python)

题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路一: 暴力解法,将所有的都列出来进行比较。C++class Solution {public: bool Find(int target, vector<vector&...

2020-02-29 22:09:28 69

原创 剑指offer:剪绳子(C++/Python)

题目描述给你一根长度为n的绳子,请把绳子剪成整数长的m段(m、n都是整数,n>1并且m>1),每段绳子的长度记为k[0],k[1],…,k[m]。请问k[0]xk[1]x…xk[m]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。思路: 动态规划定义函数f(n)为把长度为n的绳子剪成若干段后各段长度乘积的最大值...

2020-02-29 19:25:06 119

转载 剑指offer:机器人的运动范围(C++)

题目描述地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?思路:仍然是典型的回溯法,具体思路可以...

2020-02-29 18:21:41 180

转载 剑指offer:矩阵中的路径(C++)

题目描述请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如如下矩阵中包含一条字符串"bcced"的路径,但是矩阵中不包含"abcb"路径,因为字符串的第一个字符b占据了矩阵中的第一行第二个格子之后,路径不能再次...

2020-02-29 15:54:44 163

转载 剑指offer:把字符串转换成整数(C++)

题目描述将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0思路: 注意输入数据的合法性,例如“1234+12”,“12@@#*24”,这样的都是不合法数值,要返回0的。但是如果第一个字符时+或-时是可以的,且影响最后输出的符号,最后还要判断下数字是否超出了范围。比如数字 “-91283472332” 超过 32 位有符号整数范围-...

2020-02-29 14:01:13 203

转载 剑指offer:不用加减乘除做加法(C++)

题目描述写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。按位与运算符(&)参加运算的两个数据,按二进制位进行“与”运算。运算规则:0&0=0; 0&1=0; 1&0=0; 1&1=1;即:两位同时为“1”,结果才为“1”,否则为0例如:3&5 即 0000 0011 & 000...

2020-02-29 13:33:02 135

转载 剑指offer:求1+2+3+...+n(C++/Python)

题目描述求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。思路:递归 + 逻辑短路:通过逻辑运算短路的原理中断递归运算实现1 + 2 + … n逻辑短路:逻辑短路指在逻辑运算中,如果能够通过一个逻辑表达式的一部分结果确定最终结果,则不会再继续执行后面的逻辑运算。对于逻辑与( &&...

2020-02-29 12:09:52 477

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除