- 博客(106)
- 收藏
- 关注
原创 Pytorch入门实战-----ResNet识别CIFAR-10数据集
跑了一个epoch,正确率为:import torchimport torch.nn as nnimport torchvision.datasets as dsetsimport torchvision.transforms as transformsfrom torch.autograd import Variable#Image Preprocessingtransf...
2019-06-25 12:39:45
2398
原创 Pytorch入门实战-----双向RNN识别手写数据集
跑了一个epoch,测试了一下:import torchimport torch.nn as nnimport torchvision.datasets as dsetsimport torchvision.transforms as transformsfrom torch.autograd import Variable#Hyper Parameterssequence...
2019-06-25 10:46:37
1939
4
原创 实习面试第二篇--杭州北大信息技术研究院
这是实习期间面试的第二个公司,老师在班级群里面发的招聘信息,然后直接就投了简历,我直接投的微信,然后看了之后让我等待面试。大概三四天的时候,收到电话让我预约面试,时间定于周三早上十点。第一个面试官:看了一下简历,什么也不问,直接让你写代码,就是数据结构的内容。二分查找、排序、以及二叉树这些内容。说实话,答得并不好,当时他有点忙,让我去找另外一个面试官面试。第二个面试官:走流程吧,先介绍...
2019-06-17 16:07:48
9147
4
原创 数据结构---归并排序(Python)
归并排序归并排序是采用分治法的一个非常典型的应用。归并排序的思想就是先递归分解数组,再合并数组。将数组分解最小之后,然后合并两个有序数组,基本思路是比较两个数组的最前面的数,谁小就先取谁,取了后相应的指针就往后移一位。然后再比较,直至一个数组为空,最后把另一个数组的剩余部分复制过来即可。def merge_sort(nums): if len(nums) <= 1: ...
2019-06-12 18:44:30
190
原创 数据结构---希尔排序(Python)
希尔排序希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。希尔排序过程希尔排序的基本思想...
2019-06-12 16:46:54
168
原创 数据结构---二分查找(Python)
二分法查找二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后...
2019-06-12 10:47:27
133
原创 数据结构---快速排序(Python)
快速排序快速排序(英语:Quicksort),又称划分交换排序(partition-exchange sort),通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。步骤为:从数列中挑出一个元素,称为"基准"(pivot), 重新排序数列...
2019-06-11 15:44:58
113
原创 数据结构---插入排序(Python)
插入排序插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。def insert_sort(nums): for i in range(1,len(nums)): ...
2019-06-11 15:10:30
223
原创 数据结构---选择排序(Python)
选择排序选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,它们当中至少有一...
2019-06-11 14:57:44
175
原创 数据结构---冒泡排序(Python)
冒泡排序冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。冒泡排序算法的运作如下:比较相邻的元素。如果第一个比第二个大(升序),就交换他们两个。 对每一...
2019-06-11 14:45:10
122
原创 数据结构---双端队列(Python)
双端队列(deque,全名double-ended queue),是一种具有队列和栈的性质的数据结构。双端队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端进行。双端队列可以在队列任意一端入队和出队。操作Deque() 创建一个空的双端队列 add_front(item) 从队头加入一个item元素 add_rear(item) 从队尾加入一个item元素 remov...
2019-06-10 20:51:41
199
转载 数据结构---队列的实现(Python)
队列的实现同栈一样,队列也可以用顺序表或者链表实现。操作Queue() 创建一个空的队列 enqueue(item) 往队列中添加一个item元素 dequeue() 从队列头部删除一个元素 is_empty() 判断一个队列是否为空 size() 返回队列的大小class Queue(object): def __init__(self): sel...
2019-06-10 20:35:16
134
原创 数据结构---栈(Python)
栈结构实现栈可以用顺序表实现,也可以用链表实现。栈的操作Stack() 创建一个新的空栈 push(item) 添加一个新的元素item到栈顶 pop() 弹出栈顶元素 peek() 返回栈顶元素 is_empty() 判断栈是否为空 size() 返回栈的元素个数class Stack(object): def __init__(self): s...
2019-06-10 20:19:58
118
原创 数据结构---双向链表(Python)
双向链表一种更复杂的链表是“双向链表”或“双面链表”。每个节点有两个链接:一个指向前一个节点,当此节点为第一个节点时,指向空值;而另一个指向下一个节点,当此节点为最后一个节点时,指向空值。操作is_empty() 链表是否为空 length() 链表长度 travel() 遍历链表 add(item) 链表头部添加 append(item) 链表尾部添加 insert(p...
2019-06-10 20:09:05
159
原创 数据结构---单向循环链表(Python)
上周去面试,数据结构真的太重要了。自己掌握的不是很好,吃了很大的亏。路漫漫其修远兮,吾将上下而求索.......单链表的一个变形是单向循环链表,链表中最后一个节点的next域不再为None,而是指向链表的头节点。操作is_empty() 判断链表是否为空 length() 返回链表的长度 travel() 遍历 add(item) 在头部添加一个节点 append(it...
2019-06-10 19:19:13
130
原创 Pytorch入门实战-----LSTM识别手写数据集
LSTM长短期记忆网络,听说用来识别手写数据集有点大材小做,不过一直对语音、序列模型等等没怎么实践过,以后有空了再玩玩。跑了一个epoch,正确率为97。完整代码:import torchimport torch.nn as nnimport torchvision.transforms as transformsimport torchvision.datasets as...
2019-06-01 15:52:41
3250
2
原创 Pytorch入门实战-----CNN识别手写数据集
CNN网络对图像的提取特征确实厉害了,只跑一个epoch识别率就达到了98。import torchimport torch.nn as nnimport torchvision.transforms as transformsimport torchvision.datasets as dsetsfrom torch.autograd import Variablebatc...
2019-05-31 20:25:18
2049
1
原创 Pytorch入门实战-----前馈神经网络识别手写数据集
识别率还挺高的,跑了10个epoch,正确率96.import torchimport torch.nn as nnimport torchvision.datasets as dsetsfrom torch.autograd import Variableimport torchvision.transforms as transformsinput_size = 784...
2019-05-31 16:13:30
1419
原创 Pytorch入门实战-----逻辑回归识别手写数据集
定义的网络比较简单,可以自行修改,调一下参数,识别率就会上去了。import torchimport torch.nn as nnfrom torch.autograd import Variableimport torchvision.datasets as dsetsimport torchvision.transforms as transformsinput_size =...
2019-05-31 15:26:33
442
原创 Pytorch入门实战-----线性模型
基础知识tensor跟Variable这些就不多说了,博客也很多,随便搜一下就好了呢。直接进入主题:下面就来完成一个小案例,红色的点就是原始数据,如何利用这些数据拟合出一条合适的直线呢,比如下面的红线,来作为预测。我们可以利用神经网络来实现它。导入所需要的包:#导入所需要的包import numpy as npimport torchimport torch.nn as n...
2019-05-30 22:14:32
395
原创 LeetCode091-解码方法
一条包含字母A-Z 的消息通过以下方式进行了编码:'A' -> 1'B' -> 2...'Z' -> 26给定一个只包含数字的非空字符串,请计算解码方法的总数。示例 1:输入: "12"输出: 2解释:它可以解码为 "AB"(1 2)或者 "L"(12)。示例2:输入: "226"输出: 3解释:它可以解码为 "BZ" (2...
2019-05-19 14:47:51
212
原创 LeetCode090-子集 II
给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: [1,2,2]输出:[ [2], [1], [1,2,2], [2,2], [1,2], []]class Solution: def subsetsWithDup(self, nums): res =...
2019-05-19 13:32:22
123
原创 LeetCode088-合并两个有序数组
给定两个有序整数数组nums1 和 nums2,将 nums2 合并到nums1中,使得num1 成为一个有序数组。说明:初始化nums1 和 nums2 的元素数量分别为m 和 n。 你可以假设nums1有足够的空间(空间大小大于或等于m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 ...
2019-05-19 12:42:53
110
原创 LeetCode081-搜索旋转排序数组 II
假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组[0,0,1,2,2,5,6]可能变为[2,5,6,0,0,1,2])。编写一个函数来判断给定的目标值是否存在于数组中。若存在返回true,否则返回false。示例1:输入: nums = [2,5,6,0,0,1,2], target = 0输出: true示例2:输入: nums...
2019-05-18 15:47:36
158
原创 LeetCode080-删除排序数组中的重复项 II
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例1:给定 nums = [1,1,1,2,2,3],函数应返回新长度为5,并且原数组的前五个元素被修改为[1,1,2,2,3]你不需要考虑数组中超出新长度后面的元素。class So...
2019-05-18 15:38:32
107
原创 LeetCode078-子集
给定一组不含重复元素的整数数组nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []]思路:还是回溯法。执行用时 :56 ms, 在Subsets的Python3提交中击...
2019-05-18 13:51:13
143
原创 LeetCode077-组合
给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。示例:输入:n = 4, k = 2输出:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]回溯法class Solution: def combine(self, n, k): res = [] ...
2019-05-18 11:55:48
140
原创 LeetCode075-颜色分类
给定一个包含红色、白色和蓝色,一共n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、1 和 2 分别表示红色、白色和蓝色。注意:不能使用代码库中的排序函数来解决这道题。示例:输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2]我的:思路就是遍历数组,遇到前面的数大于后面的数的话,两个...
2019-05-18 10:18:52
167
原创 LeetCode074- 搜索二维矩阵
编写一个高效的算法来判断m x n矩阵中,是否存在一个目标值。该矩阵具有如下特性:每行中的整数从左到右按升序排列。 每行的第一个整数大于前一行的最后一个整数。示例1:输入:matrix = [ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50]]target = 3输出: true示例2:输...
2019-05-18 09:30:48
187
原创 LeetCode071-简化路径
以 Unix 风格给出一个文件的绝对路径,你需要简化它。或者换句话说,将其转换为规范路径。在 Unix 风格的文件系统中,一个点(.)表示当前目录本身;此外,两个点 (..)表示将目录切换到上一级(指向父目录);两者都可以是复杂相对路径的组成部分。更多信息请参阅:Linux / Unix中的绝对路径 vs 相对路径请注意,返回的规范路径必须始终以斜杠 / 开头,并且两个目录名之间必须只有...
2019-05-17 14:43:33
131
原创 LeetCode070-爬楼梯
假设你正在爬楼梯。需要 n阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. ...
2019-05-17 14:37:44
189
原创 LeetCode069-x 的平方根
实现int sqrt(int x)函数。计算并返回x的平方根,其中x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。我的:import mathclass ...
2019-05-17 14:09:32
148
原创 LeetCode067-二进制求和
给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字1和0。示例1:输入: a = "11", b = "1"输出: "100"示例2:输入: a = "1010", b = "1011"输出: "10101"python好像真的好用啊!class Solution: def addBinary(self, a, ...
2019-05-17 14:05:33
124
原创 LeetCode066-加一
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321...
2019-05-17 13:59:12
145
原创 LeetCode060-第k个排列
给出集合[1,2,3,…,n],其所有元素共有n! 种排列。按大小顺序列出所有排列情况,并一一标记,当n = 3 时, 所有排列如下:"123" "132" "213" "231" "312" "321"给定n 和k,返回第k个排列。说明:给定 n的范围是 [1, 9]。 给定 k的范围是[1, n!]。示例1:输入: n = 3, k ...
2019-05-17 13:36:58
128
原创 LeetCode058-最后一个单词的长度
给定一个仅包含大小写字母和空格' '的字符串,返回其最后一个单词的长度。如果不存在最后一个单词,请返回 0。说明:一个单词是指由字母组成,但不包含任何空格的字符串。示例:输入: "Hello World"输出: 5class Solution: def lengthOfLastWord(self, s: str) -> int: s_...
2019-05-17 10:37:33
118
原创 数据结构---单向链表(Python)
最近刷LeetCode,涉及到了很多链表的内容,都暂时跳过了。学习了一下传播智客的Python版数据结构,做一些笔记吧。单项链表单项链表也叫单链表,是链表中最简单的一种形式,它的每一个节点包含两个域,一个称为信息域(元素域),另一个称为链接域(指针域)。其中链接指向链表中的下一个节点,而最后一个节点的链接域则指向一个空值。单链表节点单元如下图所示:表元素域elem用来存放具体的...
2019-05-17 10:05:19
264
原创 LeetCode056-合并区间
给出一个区间的集合,请合并所有重叠的区间。示例 1:输入: [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例2:输入: [[1,4],[4,5]]输出: [[1,5]]解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间。...
2019-05-16 16:11:06
170
原创 LeetCode053- 最大子序和
给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释:连续子数组[4,-1,2,1] 的和最大,为6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。执行用时 :56 ms, 在Maximum Subarra...
2019-05-16 15:42:52
145
原创 LeetCode046-全排列
给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]class Solution: def permute(self, nums): res = [] def backt...
2019-05-16 15:11:45
326
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人