- 博客(119)
- 资源 (19)
- 收藏
- 关注

原创 SSD:运行你的第一个SSD模型进行目标检测
案例1:仅仅测试该案例适合于你只是想测试一下SSD,用几张自己的图测试,得到结果,不自己训练模型。代码1使用方法:本人环境:默认是装的ubuntu、安装了tensorflow-gpu、cuda、cudnn等环境、anacond3(py3.x)下载好代码后,进入./checkpoint文件夹,解压文件。unzip ssd_300_vgg.ckpt.zip打开终端,启动jupyte...
2019-03-27 16:42:42
2207
1

转载 基于深度学习的语义分割代码库
截至: 2018-04-16Awesome Semantic SegmentationNetworks by architectureSemantic segmentationU-Net [https://arxiv.org/pdf/1505.04597.pdf] https://github.com/zhixuhao/unet [Keras]https:...
2018-04-16 21:29:31
3055

转载 Python面试中的一些问题
Table of ContentsPython语言特性 1 Python的函数参数传递2 Python中的元类(metaclass)3 @staticmethod和@classmethod4 类变量和实例变量5 Python自省6 字典推导式7 Python中单下划线和双下划线8 字符串格式化:\x和.format9 迭代器和生成器10 *args and **kwa...
2018-03-02 19:55:30
1373

原创 2018测试岗位:面试问的问题
总结一些面试遇到的问题经历一:国内某半导体公司测试岗面试 1、循环输出一个数组 2、冒泡排序 3、局部变量、全局变量、静态局部变量 4、数组与链表的区别 5、结构体与联合体的区别(存储方式) 6、队列与栈的区别 7、简单的Linux指令。按时间排列查询 8、linux创建文件(指令) 9、如何到点执行任务(类似于定时执行) 10、进程与线程的区别 11、面向对象的特征:...
2018-03-02 14:32:51
6707

原创 Tensorflow 实现迁移学习的一个简单例子
Tensorflow 实现迁移学习实现效果: 运用Inception-V3的网络框架实现花的种类的图片分类。数据模型文件结构 -transfer_learning -flower_data //存放原始图片的文件夹,有5个子文件夹, 每个子文件夹的名称为一种花的名称 -daisy //daisy类花图片的文件夹 -dandel...
2018-02-18 13:54:03
8592
7

原创 Matlab将图片存为.mat文件
将图片存为.mat文件原因 :由于做深度学习相关研究的时候,需要将图片存为.mat作为网络的输入,故写了该程序。有时候我们会有将图片与标签存为一个.mat文件,做到一一对应的效果。例如做fcn分割的时候图片与mask。我们的做法是首先将img和mask加载到工作空间,然后用img=imread('000.jpg');mask = imread('000.jpg');save('m...
2018-02-09 15:42:46
23607

原创 U-net:运行你的第一个U-net进行图像分割
Unet进行图像分割注意:本文运行环境为:python3.5、tensorflow 1.4.0Unet进行图像分割数据准备程序准备运行网络测试结果如下参考数据准备原始数据:首先准备数据,参考数据来自于 ISBI 挑战的数据集。数据可以在 这里 下载到,含30张训练图、30张对应的标签。30张测试图片,均为.tif 格式文件。增强后的数据 :谷歌云盘...
2018-02-08 16:00:01
58754
324

原创 win10+vs 2013/vs2015+open CV 3.2/open CV 2.4.13配置
注意:一定要按照写的步骤一步一步来,结果肯定可以配置成功。方法一为一次性配置,每次写程序都会自动加载opencv库;方法二为每次需要手动添加加载opencv库,可以根据自己需要来选择适合自己的方法。方法一:win10+VS2015+OpenCV 3.2.0配置环境变量:打开我的电脑选择->该机系统环境设置 --->(系统变量)环境变量的变量值为: (…安装目
2018-01-21 12:34:10
1380
原创 python sort多条件排序
单条件 sort / sorted1、常规不多讲,a.sort() 在a原地排序,排序后a顺序改变, sorted(a)返回排序后的序列,a本身顺序不改变。可选为reverse, True标识倒序,默认False, 从小到大排列。a = [3, 2, 5, 1]b = sorted(a)# b= [1, 2, 3, 5]# a = [3, 2, 5, 1]c = [3, 2, 5, 1]c.sort()# c = [1, 2, 3, 5]2、带lambda表达式的sort或者so
2021-05-22 14:59:46
10740
3
原创 c++ using用法
三种情况:命名空间在子类中引用基类成员别名指定命名空间:using namesapce std;#...#...在子类中引用基类成员#include<string>#include<iostream>using namespace std;class My{public: My() {}; void fun() { std::cout << "my::fun()" << std::endl; }; void fun(
2021-01-10 16:08:58
421
原创 在python中使用GRPC进行通信
在python中使用GRPC进行通信步骤:1、装依赖2、写proto文件3、生成代码4、写server、client1、装依赖pip install grpciopip install protobufpip install grpcio-tools2、写proto//demo.protosyntax = "proto3";package demo;service Demo { rpc demo_func (demo_request) returns (demo_
2020-12-11 23:54:00
931
原创 搭建自己的harbor(docker托管)
harbor:用于托管docker镜像,如git托管代码一样。安装docker && docker-compose# installyum install docker# run dockersystemctl start docker#install docker-composecurl -L https://github.com/docker/compose/releases/download/1.13.0/docker-compose-`uname -s`-`uname
2020-11-29 23:45:06
406
原创 搭建自己的TFS(分布式文件系统)
搭建自己的TFS(Taobao FileSystem)分布式文件系统:下载:可选版本:TFS 2018或者2019版:Azure DevOps Server 2020 安装:下载了iso文件后,双击安装,基本是下一步下一步就好了。其中会设置一些密码等用于后期登录。最后,安装结束后,可通过Chrome访问:http://tfsserver:8080/tfs如下所示,就可以开始使用了。参考:链接1链接2...
2020-11-29 23:11:17
983
原创 搭建自己的pypi server
目的: 搭建自己的pypi server安装:pip install pypiserver创建packages包文件夹window下默认在:C:\Users\youname\packages启动server:pypi-server特殊需求改为非8080端口启动:例如改为8081pypi-server -p 8081修改包的存放位置:例如放到D:/packagespypi-server -P D:/packages本地找不到时候,设置一个请求转发:例如本地没有就去清华源找py
2020-11-29 22:16:00
745
原创 Mysql实现自动升级
文章目录一、mysql表设计二、mysql orm生成三、修改orm四、mysql orm刷回数据库五、参考背景: 建立一个数据库mydb, 含有一个表employee, employee_single通过id外键关联,实现删除employee记录关联删除employee_single对应的记录。然后实现修改orm后可以自动将表修改部分刷回数据库。一、mysql表设计建库:CREATE DATABASE mydb;建表:employee 、employee_singleCREATE TABL
2020-11-29 18:43:54
701
1
原创 用队列进行多线程通信
在线程中,传入队列名,然后不听从队列里面取消息,也可以王队列里面放消息。通常一个线程放,一个线程取。代码如下:一个生产者向两个队列丢消息,两个消费者各一个队列,取各自队列的消息。当取到特定消息时候,退出该线程。# coding=utf8import timefrom queue import Queuefrom threading import Thread_terminal = object()def producer(out_q, out_q2): n = 3 w
2020-08-15 15:43:03
558
原创 Leecode101_isSymmetric
Leecode 101给定一个二叉树,检查它是否是镜像对称的。方法一:递归判断,类似于判断两个树是否相等,不过这次左右树交叉判断。代码: bool Check(TreeNode* p, TreeNode* q) { if (!p && !q) return true; if (!p || !q) return false; return p->val == q->val && Check(p->left, q->right) &a
2020-08-03 21:25:13
194
原创 Leecode42_trap
思路:为了减少遍历次数,采用左右向中间走的方式,同时维护一个左侧的最大值和右侧的最大值,当前值和最大值的差值则为当前块增加的水量。int Leecode42_trap(std::vector<int>& height) { int left = 0, right = height.size() - 1; int ans = 0,left_max = 0, right_max = 0; while (left < right) { if (height[left] &l
2020-08-03 21:24:42
146
原创 Leecode12_intToRoman
题目:给定一个数字,将其转为罗马文字思路:直接贪心法,先从最大的M开始,如果num比1000大,那么则除以他后再比,如果除后不大于当前标识符,则除以第二大的900,依次下去,直到除到个位 I。类似于找去商店买东西找零。代码:std::string Leecode12_intToRoman(int num) { int values[] = { 1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1 }; std::string symbols[]
2020-08-03 21:24:10
166
原创 Leecode45_jump
题目:给定数组,数组值为可以向前进得最大次数,求跳到最后一个位置的最少步数。建设数组不含0.思路:由于存的值是当前可跳的最远的步数,那么肯定尽量跳得远咯。从头开始,维护一个上次可以跳得最远位置,和当前的可跳的最远的位置,取大的。代码:int Leecode45_jump(std::vector<int>& nums) { int maxPos = 0, end = 0, step = 0; for (int i = 0; i < nums.size() - 1; ++
2020-08-03 21:23:54
173
原创 Leecode415_addString
Leecode 415代码:std::string Leecode415_addString(std::string num1, std::string num2) { int len1 = num1.size() - 1; int len2 = num2.size() - 1; int car = 0; std::string result = ""; while (car == 1 || len1 >= 0 || len2 >= 0) { int x = len1 >
2020-07-15 22:42:05
156
原创 小白鼠喝药问题
题目:大概是这样:有100瓶水,其中只有一瓶含有毒药,小白鼠喝下毒药水后会在1小时内死亡,那么如何用最少数量的小白鼠在1小时内找出这瓶毒药水?1、常规思路假设有n只小白鼠可用于试毒,编号1~n,那么运用排列组合,根据小白鼠的生存状态判断,我们做出如下尝试:1只小白鼠,只能测试其中1瓶水是否含毒,即 21−12^{1}-121−1瓶;2只小白鼠,分别先测试其中的2瓶水,再同时测试第3瓶水,最多可测试22−12^{2}-122−1瓶;3只小白鼠,分别先测试其中的3瓶水,再两两结合分别测试其他的3瓶水
2020-07-15 22:22:23
2718
1
原创 消除相邻字符
字符串消消乐?给定一个字符串,删除相邻两个相同的字符。例如:给定: “abbabc”输出:“bc"思路:1、乍一看,是不是应该挨个便利,每次遍历消去原始就两两相邻的,在第二遍来消除剩下的,直到没有相同的,咋直到消除完了?直接看某一次长度不在变化,可能来个flag 辅助判断。会遍历几次?两两相消,那么最多字符串的一半那么多次。2、想一想,其实遍历那么多次是不是不需要的,每次找到相邻的以后,直接消除,消除后下一个和之前没有消除的比较,看相同不,直到到达字符串结尾。刚好栈就可以完成这一任务注意点:
2020-07-14 21:12:22
1646
原创 删除单链表指定元素
题目:给定单链表,删除链表中指定等于指定元素的节点。代码:/** * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ListNode* removeElements(ListNode* head, int target) { if (head != NULL && head->val == ta
2020-07-14 17:53:50
6627
5
原创 Leecode49_groupAnagrams
Leecode49思路:对每个元素排序,然后用map来存储,用元素做键,同样字母的组成的字符串的列表做值。最后按值返回列表代码:class Solution { public List<List<String>> Leecode49_groupAnagrams(String[] strs) { if (strs.length == 0) return new ArrayList(); Map<String, List> ans = new Ha
2020-07-09 23:29:46
207
原创 Leecode43_multiply
Leecode 43思路:三个数组,从右往左相加,最后处理最高位有进位情况。代码:std::string Leecode43_multiply(std::string num1, std::string num2) { std::string ans; std::vector<int> a, b, c; c.resize(num1.size() + num2.size() - 1); for (int i = num1.size() - 1; i >= 0; i--) a.
2020-07-08 23:32:54
180
原创 Leecode36_isValidSudoku
Leecode 36思路:最简单暴力方法,三次便利,按行,按列,按小块。另外一种方法,一次便利,用三个hash表记录分别记录行、列、块。然后看如果出现的次数多于一次,那么返回false。代码://貌似有点问题bool Leecode36_isValidSudoku(std::vector<std::vector<char>>& board) { std::vector<std::map<int, int>> rows; std::vecto
2020-07-07 23:34:51
1014
原创 Leecode46_permute
Leecode 46思路:全排列,一般会用回溯法代码:class Leecode46 { std::vector<std::vector<int>>Leecode46_permute(std::vector<int>& nums) { std::vector<std::vector<int>> res; backtrack(res, nums, 0, nums.size()); return res; } void
2020-07-06 23:31:38
1022
原创 Leecode34_searchRange
Leecode 34思路:还是二分查找,查找的不只是目标对象。第一次二分查找早左边界,第二次查找右边界。代码:class Leecode34 { std::vector<int> Leecode34_searchRange(std::vector<int>& nums, int target) { std::vector<int> no_find = { -1,-1 }; int left_index = extreamIndex(nums, t
2020-07-05 16:42:04
2785
原创 Leecode33_search
Leecode 33思路:由于复杂度限制,故不能直接遍历查找,也不能直接用std::find,因为二者是线性查找。有序,就用二分查找。旋转一半,那么肯定有一半是有序的,另外一半可能混合的,那么就看目标是在有序的那一边还是无序的那一边。不停折半,多几次二分查找就可以了。代码:int Leecode33_search(vector<int>& nums, int target) { int n = (int)nums.size(); if (!n)
2020-07-05 16:00:06
2692
原创 Leecode31_nextPermutation
Leecode 31思想:直接排列复杂度太高。当前排列的下一个序列,就是序列从后往前,达到非降序的哪一个数,与在后一个序列中比当前数大一点的数,换了位置,然后讲最后的原来降序排列就好了。即从下面图中,a[i-1]和a[j]换,然后从a[i]到结尾重新排序(降序)代码:void Leecode31_nextPermutation(std::vector<int>& nums) { int i = nums.size() - 2; while (i >= 0 &&
2020-07-05 14:40:38
2574
原创 Leecode24_swapPairs
代码:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* Leecode24_swapPairs(ListNode* head) { if (head ==
2020-07-04 20:22:20
3292
原创 Leecode22_generateParenthesis
Leecode 22:代码:class Leecode22 { std::vector<std::string> result; std::vector<std::string> Leecode22_generateParenthesis(int n) { dfs(n, n, ""); return result; } void dfs(int left, int right, std::string curStr) { if (left == 0 &
2020-07-04 20:07:24
3095
原创 Leecode18_fourSum
Leecode 18思路:两数之和用双指针,三数之和,固定第一个,再用双指针,四数之和再三数之和上多家一层循环就好了,另外注意同一个位置得前后两个数字不要重复。代码:std::vector<std::vector<int>> Leecode18_fourSum(std::vector<int>& nums, int target){ sort(nums.begin(), nums.end()); std::vector<std::vector&l
2020-07-04 18:21:24
3456
原创 Leecode16_threeSumClosest
Leecode 16思路:固定一个,再运用双指针。先固定第一个,然后运用双指针,一个变量记录最小差值,一个记录三个最近值得和,如果差值为0直接返回,否者返回最近得值。代码:int Leecode16_threeSumClosest(std::vector<int>& nums, int target) { int result = INT_MAX; int last_closet = INT_MAX; int len = nums.size(); if (len <
2020-07-04 17:14:25
3949
原创 Leecode15_threeSum
Leecode15思路:首先对数组进行排序,排序后固定一个数 nums[i],再使用左右指针指向 nums[i]后面的两端,数字分别为 nums[L] 和 nums[R],计算三个数的和 sum 判断是否满足为 0,满足则添加进结果集。如果 nums[i]大于 0,则三数之和必然无法等于 0,结束循环如果 nums[i]= nums[i-1],则说明该数字重复,会导致结果重复,所以应该跳过当 sum = 0 时,nums[L]= nums[L+1] 则会导致结果重复,应该跳过,L++当 sum
2020-07-04 15:05:23
4220
原创 Leecode11_maxArea
Leecode 11思路:毫无疑问,盆子越宽装的越多,那么从两边向中间靠,谁短谁移动,直到相遇。代码int Leecode11_maxArea(std::vector<int>& height) { int max_area = 0; for (int i = 0, j = height.size() - 1; i <= j;) { int current_area = (j - i) * std::min(height[j], height[i]); max_a
2020-07-04 14:00:44
3942
原创 Leecode8_myAtoi
Leecode8代码:如下,很简单,一看就明白的。int Leecode8_myAtoi(std::string str) { int res= 0; int i = 0; int flag = 0; while (str[i] == ' ') i++; if (str[i] == '-') flag = -1; if (str[i] == '+' || str[i] == '-') i++; while (i < str.size() && isdigi
2020-07-04 11:31:45
4304
原创 Leecode5_longestPalindrome
Leecode 5最长回文串方法一:动态规划法,对于一个子串而言,如果它是回文串,并且长度大于 22,那么将它首尾的两个字母去除之后,它仍然是个回文串。例如对于字符串 "ababa’’ 如果我们已经知道 `bab’'是回文串,那么ababa一定是回文串,这是因为它的首尾两个字母都是 “a”。边界条件就是i=j的时候,肯定是回文串,如果为2,当两个字符相同时候也为回文串。代码std::string Leecode5_longestPalindrome(std::string s) { int n
2020-06-11 23:36:26
146
原创 Leecode3_lengthOfLongestSubString
Leecode 3给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。方法一:SET最长子串,就需要直到开始和结束,开始用一个字符表示,另外一个一直吵右走,直到遇到重复的串。重复的串采用unordered_set来保证,如果再set里面找到了,那么就移动左侧开始位置。同时查找当前的串长度和最大长度谁大,更新最大长度。代码:int Leecode3_2_lengthOfLongestSubString(std::string s) { if (s.size() == 0) return
2020-06-08 23:46:57
212
OpenCV With Python by Example
2017-11-14
MNIST测试程序代码
2017-11-14
Python数据分析基础教程:NumPy学习指南(第2版)代码+书籍pdf
2017-11-09
莫烦python,tensorflow
2017-11-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人