Fans的博客

即学即会, 让学习更容易

二分查找

leetcode-二分查找

二分查找 什么是二分查找?二分查找就是不断的找当前序列的中点,通过与二段性比较,如果满足,则解必然在另一半的序列中,将序列一分为二,在另一半中继续搜索,如此往复,因此每次减少一般的搜索空间,达到Ologn的时间复杂度。 二段性 二分查找最重要的就是必须拥有二段性,什么是二段性?必须序列的前一部分满足一个性质,后一部分不满足,因此我们可以通过二分查找找到两个性质转变的中间点。 举个例子,在s=...

栈与队列

栈与队列

栈和队列 两个栈实现一个队列 求解思路,使用两个栈来回倒—此处已经是优化后的 我们设一个栈A和一个栈B 如果是进队操作——-对进A栈 如果是退队操作——-检查B栈,如果B中有元素,则B出栈,如果B中没有元素,则将A中元素倒入B中 判断队列为空==两个栈都为空,返回-1 class CQueue(object): def __init__(self): ...

深度学习-永远的神:Transformer

永远的神:Transformer

前言 由谷歌团队提出的预训练语言模型BERT近年来正在各大自然语言处理任务中屠榜(话说学者们也挺有意思的,模型名都强行凑个芝麻街的人物名,哈哈哈)。 BERT算法的最重要的部分便是Transformer的概念,它本质上是Transformer的编码器部分。 而Transformer是什么呢?transformer是永远的神,自从transformer使用了抛弃rnncnn的纯attentio...

位运算-只出现一次的数字

leetcode-136

题目 136.给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1] 输出: 1 集合解法 使用集合存储数字。遍历数组中的每个数字,如果集合中没有该数字,则将该数字加入集合,如果集合中已经有该数字,则将该...

运行代码整个计算机会发生什么?

计算机基础

运行代码整个计算机会发生什么? 首先我们以一个C语言程序为例子 运行一个C/C++代码第一步: 编译,优化(.c->.s,.asm) 一个C/C++程序在点击运行的那一刻,首先这个程序经过预处理之后会被编译及优化, 编译的过程设计到编译原理的相关知识,词法分析,...

科研第四步

写会议论文必备工具以及技能

科研第四步:AI方向投稿会议论文必备工具以及技能 因为最近投了研究生生涯中第一篇论文,早就想写,但是拖了很久,写一下心路历程以及写论文中用到的常用工具以及一些心得以及一些技巧,希望可以帮助大家提升一下写论文的效率,以及减免一些写论文上面的时间。同时因为最近又要投稿一篇论文,所以为了方便自己写的时候很多上次用到的东西忘记,所以就当写一个备忘。 @TOC 前言 计算机专业投稿AI领域的会议,首...

科研第二步

远程在服务器上跑程序&jupyter使用

前言 本篇文章主要介绍如何使用jupyter这个功能十分强大,并且可以写code和markdown的编辑利器,并且实现在服务器上运行jupyter可以使用服务器上的gpu速度以及图形化方便的IDE。 一、jupyter是什么? Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本,支持运行 40 多种编程语言。 Jupyter Noteboo...

科研第三步

pycharm远程连接服务器并链接服务器跑神经网络模型

前言 本篇文章主要介绍如何使用pycharm professional(仅限专业版)可以连接服务器,这一强大的IDE来实现远程在服务器上修改代码,跑代码,以及搭载服务器上面的虚拟环境来跑神经网络模型,最后讲出了如何使用pycharm来debug我们的代码,解决一些通过只看报错信息无法解决的bug报错。 一、pycharm连接服务器 请按照以下步骤一步步的进行即可: 首先进入tools——...

科研第一步

实现Linux服务器上创建python虚拟环境

科研第一步:实现Linux服务器上创建python虚拟环境 为什么要创建python虚拟环境 第一次写博客,想通过写博客的方式记录下自己研究生阶段的学习,回答标题,进入实验室之后,如果需要经常在github上跑别人的代码或者baseline的时候,基于现在的AI大多由python实现,但是在跑实验的时候由于python版本和tensorflow以及keras等各类库不兼容问题的时候很是头...

机器学习-数据集的划分

机器学习-数据集的划分

数据集的划分,验证集参与训练了吗? 前言 在周志华老师的《机器学习》这本书中,我们知道训练机器学习以及深度学习的模型的时候,对数据集需要进行划分,通常划分成训练集和测试集,一般我们还会对训练集进行再划分一部分作为验证集。 一、验证集怎么用? 验证集参与训练了吗? 从《机器学习》这本书中,我们知道,训练集是拿来训练模型参数的,对于所有的训练集,训练一个epoch之后,我们会用验证集来测...