梯度计算

Variable

autograd.Variabletorch.autograd中很重要的类。它用来包装Tensor,将Tensor转换为Variable之后,可以装载梯度信息。

img

Pytorch的一个重要特点就是动态计算图(Dynamic Computational Graphs)。计算图中每一个节点代表一个变量,变量间建立运算关系并且可以修改,而不像Tensorflow中的计算图是固定不可变的。

阅读全文 »

首先,该文章来自于极客时间网站,王争的专栏——《数据结构与算法之美》,我这里只是做最简单的解释、记录并添加自己的见解,只是作为个人笔记,若侵权,马上删除。最后建议直接去该网站上购买该课程看原作者的讲解,一来是支持作者,二来是作者写的确实不错。

作者根据自己的学习经历和工作经验,总结了几个写链表代码技巧。

阅读全文 »

首先声明,这篇文章的主要内容大部分来自小伙伴的总结,具体地址在这里,欢迎访问~~~我这里在小伙伴总结的基础上再加上一些自己的理解。

Python中与内存相关的基本概念

变量、对象及引用

在Python中有一个基础概念:Python中的所有东西都是对象。与C++等编译语言不同(把值赋给变量,强类型语言),Python中的变量本身是不具有数据类型的(弱类型语言),其数据类型由其所指向的对象的类型决定,如下:

阅读全文 »

最近一直再看复数的一些运算,回宿舍翻书发现这几天拼命在网上所搜索的关于复数的运算以及复数的导数均在大二学的工程数学——《复变函数》中学习过。而且还是我导数教的。呜呜呜,学习的时候不知道学习复变函数有什么用,用的时候才知道。算了废话不多说,开始总结吧。

复数取对数

假设复数为$z=x+iy$,其中$i$表示虚部。假设对$z$取自然对数得到的结果为$a+ib$,则可以得到

阅读全文 »

该损失函数由Kaiming大神提出来,一开始是用在目标检测算法中。关于该损失函数的描述大部分内容来自下面参考链接2。

出发点

object detection的算法主要可以分为两大类:two-stage detector和one-stage detector。前者是指类似Faster RCNN,RFCN这样需要region proposal的检测算法,这类算法可以达到很高的准确率,但是速度较慢。虽然可以通过减少proposal的数量或降低输入图像的分辨率等方式达到提速,但是速度并没有质的提升。后者是指类似YOLO,SSD这样不需要region proposal,直接回归的检测算法,这类算法速度很快,但是准确率不如前者。作者提出focal loss的出发点也是希望one-stage detector可以达到two-stage detector的准确率,同时不影响原有的速度。

阅读全文 »

深度学习自诞生之后,就被各个领域视为全能方法。而传统机器学习因为要手动提取特征,因此对数据本身的研究要远远强于深度学习方法,因此若可以将特定数据集的特征应用到深度学习中,想必是一个很好的方向。

对于极化SAR数据而言,Wishart距离是一个不可避免的概念,在论文[2]中详细介绍了Wishart距离的由来,下面结合这个论文对Wishart距离进行总结。

阅读全文 »

首先,该文章来自于极客时间网站,王争的专栏——《数据结构与算法之美》,我这里只是做最简单的解释、记录并添加自己的见解,只是作为个人笔记,若侵权,马上删除。最后建议直接去该网站上购买该课程看原作者的讲解,一来是支持作者,二来是作者写的确实不错。

链表有一个特别经典的应用——LRU 缓存淘汰算法。

缓存是一种提高数据读取性能的技术,在硬件设计、软件开发中都有着非常广泛的应用,比如常见的 CPU 缓存、数据库缓存、浏览器缓存等等。

阅读全文 »

首先,该文章来自于极客时间网站,王争的专栏——《数据结构与算法之美》,我这里只是做最简单的解释、记录并添加自己的见解,只是作为个人笔记,若侵权,马上删除。最后建议直接去该网站上购买该课程看原作者的讲解,一来是支持作者,二来是作者写的确实不错。

数组不仅仅是一种编程语言中的数据类型。还是一种最基础的数据结构。但是为什么数组下标要从0开始,而不是从1开始呢?

阅读全文 »

最近接触到了对复数函数的求导,之前已知没有研究过。在看教程的时候,发现自己微积分忘得是一干二净。真的是,233333。算了不多说了,下面对神经网络中的复数函数求导进行记录。

复数神经网络有以下几个特点:

  • 网络的输入与权重均为复数
  • 损失值为实数

本文的内容主要包含一下几个部分:

  • 推导复数神经网络的反向传播公式
  • 为复数神经网络的反向传播完成通用代码
阅读全文 »