代码随想录刷题记录 题目传送门1.2、移除元素题目传送门1.3、有序数组的平方题目传送门1.4、长度最小的子数组题目传送门1.5、螺旋矩阵 II题目传送门2、链表2.1、移除链表元素题目传送门2.2、设计链表题目传送门2.3、反转链表题目传送门2.4、两两交换链表中的节点题目传送门2.5、删除链表的倒数第N个节点题目传送门2.6、链表相交题目传送门2.7、环形链表 II题目传送门3、哈希表3.1、有效的字母异位词题目传送门3.2、两个
剑指offer(第二版)刷题记录 方法一:集合(效率低)i < n;i ++) {= 1) {} }方法二:递归//只有一个士兵时,编号为0 return 0;} }方法二:迭代//只有一个士兵,编号为0的情况 for(int i = 2;i
JVM学习04:类加载与字节码技术 什么时候需要自定义类加载器?想加载非 classpath 随意路径中的类文件。都是通过接口来使用实现,希望解耦时,常用在框架设计。这些类希望予以隔离,不同应用的同名类都可以加载,不冲突,常见于 tomcat 容器。步骤:继承 ClassLoader 父类。要遵从双亲委派机制,重写 fndClass 方法。注意不是重写 loadClass 方法,否则不会走双亲委派机制。读取类文件的字节码。调用父类的 defineClass 方法来加载类。使用者调用该类加载器的 loadClass 方法。
JVM学习03:垃圾回收 例如图中的ByteBuffer对象,当ByteBuffer对象实力创建时,会创建一个虚引用对象Cleaner来引用它,这时会分配一块直接内存,并且会把直接内存地址传递给Cleaner对象,当ByteBuffer对象被清理时,虚引用对象Cleaner会放入引用队列,当 ReferenceHandler 线程监测到有对象进入队列时,会调用相关方法释放直接内存。当from内存满了的时候,首先标记存活的对象,然后把存活的对象从from区复制到to区,然后将from区清空,最后交换from区和to区。
JVM学习02:内存结构 Java Virtual Machine Stacks (Java 虚拟机栈)每个线程运行时所需要的内存,称为虚拟机栈。每个栈由多个栈帧(Frame)组成,对应着每次方法调用时所占用的内存。每个线程只能有一个活动栈帧,对应着当前正在执行的那个方法。栈可以看做一个弹夹,先进后出。/*** 演示栈帧method1();return c;} }查看结果:我们debug发现每调用一个新的方法时,该方法就会在顶部压入栈,当这个方法运行完,就会在栈中弹出。最上面的那个方法就是活动栈帧。
JVM学习01:简介 定义:Java Virtual Machine —— java 程序的运行环境(java 二进制字节码的运行环境)好处:比较:jvm jre jdk我们主要学习 HotSpot 版本的 JVM。
狂神。JVM入门学习笔记。 Sun公司HotSpot(java -version可以查看)BEA的JRockitIBM的J9VM类加载器作用:加载Class文件。启动类(根)加载器( Bootstrap ClassLoader):负责加载jre\lib目录下的rt.jar包。扩展类加载器(Extension ClassLoader):负责加载目录下的所有jar包。应用程序加载器(Application ClassLoader):负责加载用户类路径上所指定的类库,如果应用程序中没有自定义加载器,那么此加载器就为默认加载器。
狂神。Git学习笔记。 版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。实现跨区域多人协同开发。追踪和记载一个或者多个文件的历史记录。组织和保护你的源代码和文档。统计工作量。并行开发、提高开发效率。跟踪记录整个软件的开发过程。减轻开发人员的负担,节省时间,同时降低人为错误。简单说就是用于管理多人协同开发项目的技术。
论文笔记:Skeleton Key: Image Captioning by Skeleton-Attribute Decomposition 不仅用于预测当前的骨架词,还用于指导接下来的属性词预测,我们从 Skel-LSTM 获得的注意力信息可以在 Attr-LSTM 中重复使用,以指导在哪里关注。因为骨干句子中的目标词和该词的属性词是在同一个关注区域的。提出了一种 coarse-to-fine 的算法,以两阶段的方式生成图像的描述:首先,生成图像描述的骨架句子,包含图像中涉及的主要对象词及其关系词。提出了一种使用单个模型生成可变长度的句子的机制,这使我们能够根据用户的需求来调整图像描述生成的长度,其中句子包含不同数量的对象词和属性词。
ResNet网络学习笔记。 接下来看一下什么是 residual 模块。下图中分别是34层的 ResNet 和50/101/152层的 ResNet 的 residual 结构。右边1×1的卷积核起到降维和升维的作用,同时可以减少网络的参数。在 ResNet34 的网络结构图中我们看到,有的残差结构用的实线,有的用的虚线。如下图所示,虚线的分支上通过1×1的卷积核进行了维度处理。在相加操作中,需要保持维度相同。以 ResNet 18/34 为例,左边输入和输出的维度都为[56,56,64],因此可以直接进行相加操作。
论文笔记:SemStyle: Learning to Generate Stylised Image Captions using Unaligned Text 使用 FrameNet 框架来代替动词,FrameNet 是语义框架的词汇数据库。例如 sitting, laying, parking 全被映射到 Placing 的语义框架。上表包含五个常用的动词框架。我们使用标记工具 SEMAFOR 来注释框架。然后我们将这些原始单词映射到一个简化的词汇表中。语义词的顺序与原句中的顺序相同。
论文笔记:Regularizing RNNs for Caption Generation by Reconstructing The Past with The Present 传统的解码器依赖于输入的转换算子来生成描述,单词 y的生成是以第 t 时间步的 h为条件,但它没有充分利用以前的隐藏状态 h。RNN 中训练和推理之间的差异(exposure bias)仍然存在。
论文笔记:Convolutional Image Captioning 近年来,使用由长短期记忆 (LSTM) 单元驱动的循环神经网络,在图像描述方面取得了重大进展。尽管它缓解了梯度消失问题,并且具有强大的记忆依赖性的能力,但 LSTM 单元是复杂的,并且在时间上具有内在的顺序性。
论文笔记:Pointing Novel Objects in Image Captioning 现在的 image caption 模型最关键的限制之一就是它们通常建立在许多 image -caption 对上,即它们只包含了视野中主要的目标。这阻碍了这些模型去描述图片中除了主要部分的新场景或新对象。
论文笔记:Show, Control and Tell:A Framework for Generating Controllable and Grounded Captions 现在的图像描述模型仍然缺乏可控性(controllability)和可解释性(explainablity)——即它们的行为很难受到影响和解释。例如,在注意力驱动模型的情况下,架构隐含地选择在每个时间步关注哪些区域,但无法从外部进行监督。虽然可以以多种方式描述图像,但这种架构无法控制描述哪些区域以及每个区域的重要性。这种缺乏的可控性造成了人与人工智能之间不同,因为人类可以以各种方式描述图像,并根据任务和手头的上下文选择最合适的方式。图:(a)是具有全局视觉特征的图像描述模型;...
论文笔记:Intention Oriented Image Captions with Guiding Objects 现在的图像描述生成过程的控制方面受到限制,例如一张图片可能包含许多对象,但描述句子通常只包含一个或少量对象,虽然我们可以使用现有方法准确分类或检测图像中的对象 ,我们不能强迫语言模型来描述我们关心的对象。...