419 Matching Annotations
  1. Apr 2019
    1. 帧(frame)

      下图浅蓝色区域。

    2. 除了 Heap 以外,其他的内存占用叫做 Stack(栈)。简单说,Stack 是由于函数运行而临时占用的内存区域。

      非常清晰的划分了堆和栈的应用场景。

    3. 这种因为用户主动请求而划分出来的内存区域,叫做 Heap(堆)。

      使用到堆的场景。

    4. Heap 的一个重要特点就是不会自动消失,必须手动释放,或者由垃圾回收机制来回收。

      堆的特性

    5. 32位 CPU、64位 CPU 这样的名称,其实指的就是寄存器的大小。

      这个知识点非常重要!!!说明了32位CPU和64位CPU区别的本质!

    6. 一级缓存和二级缓存

      需要一二级缓存的原因。重点关注下面的图片。

    7. 学习汇编语言,首先必须了解两个知识点:寄存器和内存模型。

      学习汇编语言的要点是了解寄存器和内存模型。

    8. 计算机真正能够理解的是低级语言,它专门用来控制硬件。汇编语言就是低级语言,直接描述/控制 CPU 的运行。如果你想了解 CPU 到底干了些什么,以及代码的运行步骤,就一定要学习汇编语言。

      学习汇编的原因

    1. 然而,仍然存在由于噪声和颜色变化引起的一些边缘像素。为了解决这些杂散响应,必须用弱梯度值过滤边缘像素,并保留具有高梯度值的边缘像素,可以通过选择高低阈值来实现。

      使用“双阈值检测”的原因是去噪。

    2. 非极大值抑制

      非极大值抑制用到的数学原理是线性插值。

    3. 卷积

      这里的卷积就是点乘!

    1. 通过单元测试,开发人员和测试人员可以快速查找 C#、Visual Basic 和 C++ 项目中各个类的方法中的逻辑错误。

      进行单元测试的原因

    1. 存储器泄漏只会在程序运行的时间内持续。

      特别要注意的地方!

    2. 在现代操作系统中,一个应用程序使用的常规内存在程序终止时被释放。这表示一个短暂运行的应用程序中的内存泄漏不会导致严重后果。

      程序运行时间较短时,内存泄漏并不会产生严重的影响

    3. 内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,导致在释放该段内存之前就失去了对该段内存的控制,从而造成了内存的浪费。

      内存泄漏的后果

    4. 内存泄漏指由于疏忽或错误造成程序未能释放已经不再使用的内存。

      内存泄漏的定义

    1. This is very important when designing a Gaussian kernel of fixed length.

      在设计固定长度的高斯核时,这非常重要。

    2. Shown graphically, we see the familiar bell shaped Gaussian distribution.

      以图形方式显示,我们看到熟悉的钟形高斯分布。

    3. Thedistributionisassumed to have a mean of 0.

      假设分布的均值为0.

    4. standarddeviationofthedistribution

      分布的标准偏差

    1. 基于进程的多任务处理是程序的并发执行。基于线程的多任务处理是同一程序的片段的并发执行。

      注意笔记进程与线程的区别!

  2. Mar 2019
    1. 结果是:sizeof(strcut A)值为8;sizeof(struct B)的值却是12。

      在x86上经过验证,确实是这样的!

    1. opaque string values

      不透明的字符串值

    2. sibling

      兄弟

    3. whopping

      高达

    4. This programmers manual describes Mini-XML version 2.12, a small XML parsing library that you can use to read and write XML data files in your C and C++ applications.

      Mini-XML的定义

    1. XML 被设计用来传输和存储数据。

      XML的功能

    2. XML 指可扩展标记语言(eXtensible Markup Language)。

      XML的全称

    1. 向前移动

      在图3-3中即表现为向右移动。

    2. 现在,Git 仓库中有五个对象:三个表示文件快照内容的 blob 对象;一个记录着目录树内容及其中各个文件对应 blob 对象索引的 tree 对象;以及一个包含指向 tree 对象(根目录)的索引和其他提交信息元数据的 commit 对象。概念上来说,仓库中的各个对象保存的数据和相互关系看起来如图 3-1 所示:

      利用图3-1可以直观的看出commit对象、tree对象和多个blob对象之间的关系。

  3. Feb 2019
    1. 在图像测量过程以及机器视觉应用中,为确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,必须建立相机成像的几何模型,这些几何模型参数就是相机参数。在大多数条件下这些参数必须通过实验与计算才能得到,这个求解参数的过程就称之为相机标定(或摄像机标定)

      相机参数与相机标定的总结

    2. 一句话就是世界坐标到像素坐标的映射,当然这个世界坐标是我们人为去定义的,标定就是已知标定控制点的世界坐标和像素坐标我们去解算这个映射关系,一旦这个关系解算出来了我们就可以由点的像素坐标去反推它的世界坐标,当然有了这个世界坐标,我们就可以进行测量等其他后续操作了~

      标定的定义

    3. 相机内参数是与相机自身特性相关的参数,比如相机的焦距、像素大小等;

      相机内参的定义

    1. 得到的复合函数记作 g ∘ f : X → Z,定义为对 X 中的所有 x,(g ∘ f )(x) = g(f(x))。

      注意这种符号表达

    2. 直观地说,复合两个函数是把两个函数链接在一起的过程,内函数的输出就是外函数的输入。

      复合函数的直观说明

    3. 在数学中,复合函数(英语:function composition)是指逐点地把一个函数作用于另一个函数的结果,所得到的第三个函数。

      复合函数的定义

    1. This characteristic of vector-Jacobian product makes it very convenient to feed external gradients into a model that has non-scalar output.

      矢量-雅可比乘积的这种特性使得将外部梯度馈送到具有非标量输出的模型中非常方便。

    2. y.grad_fn

      .grad_fn的使用

    3. Each tensor has a .grad_fn attribute that references a Function that has created the Tensor (except for Tensors created by the user - their grad_fn is None).

      问:tensor的.grad_fn属性表示什么意思? 答:每个tensor都有一个.grad_fn属性,该属性引用已创建Tensor的Function(除了用户创建的Tensors - 他们的grad_fn为None)。

    4. Tensor and Function are interconnected and build up an acyclic graph, that encodes a complete history of computation.

      Tensor和Function互相连接并构建一个非循环图,它编码完整的计算历史。

    5. There’s one more class which is very important for autograd implementation - a Function.

      还有一个类对于autograd实现非常重要——这就是Function。

    6. torch.Tensor is the central class of the package. If you set its attribute .requires_grad as True, it starts to track all operations on it. When you finish your computation you can call .backward() and have all the gradients computed automatically. The gradient for this tensor will be accumulated into .grad attribute.

      torch.Tensor是autograd包的核心,可以将.requires_grad设置为True来跟踪所有计算,待计算完之后可以用.backward( )保存自动计算完的梯度。这个tensor的梯度将自动记录在.grad的属性中。

    7. terms

      术语

    8. an acyclic graph

      非循环图

    1. 该网页简略介绍了PyTorch,具体内容包括如何在Python中导入PyTorch、PyTorch中Tensor的各种数据类型和大小的定义方法、PyTorch中的一些常用的运算操作、NumPy数据与Torch Tensor数据的互相转换和CUDA Tensors。

    1. [2018 IJCV] Depth-Based Hand Pose Estimation: Methods, Data, and Challenges. [PDF] [Project Page] [Code]

      caffe源码。

  4. Jan 2019
    1. but 64-bit compiler can only run on 64-bit Windows

      64位的编译器只能在64位的电脑上运行。

    2. Finding the right compiler for your operating platform (Windows, Mac OS X, Ubuntu), for your JDK (32-bit, 64-bit), and figuring out the correct compiler options is the hardest part to get the JNI working!!!

      为您的操作平台(Windows、Mac OS X、Ubuntu)和JDK(32位、64位)找到正确的编译器,并找出正确的编译器选项是让JNI正常工作最困难的部分!!!

    1. MinGW

      这里直接通过GitBash中执行: $ gcc -Wl,--add-stdcall-alias -I "C:\Program Files\Java\jdk1.8.0_181\include" -I "C:\Program Files\Java\jdk1.8.0_181\include\win32" -shared -o hello.dll HelloJNI.c

    1. 能够在 Android 应用中使用原生代码对于想执行以下一项或多项操作的开发者特别有用: 在平台之间移植其应用。 重复使用现有库,或者提供其自己的库供重复使用。 在某些情况下提高性能,特别是像游戏这种计算密集型应用。

      NDK的作用: 1)移植; 2)复用; 3)提高性能。

    2. Android NDK 是一组允许您将 C 或 C++(“原生代码”)嵌入到 Android 应用中的工具。

      Android NDK 的定义

  5. Oct 2017
    1. np.tile

      np.tile 是重复的函数,我的 knn 参考资料里的链接有。

    2. 在这三个点中,动作片出现的频率为三分之二,爱情片出现的频率为三分之一,所以该红色圆点标记的电影为动作片。这个判别过程就是k-近邻算法。

      这体现了概率的思想。

    1. Remember that we padded all our sentences to have the same length (59 for our data set).

      为什么要把句子的长度弄成一样长?

    2. To allow various hyperparameter configurations we put our code into a TextCNN class, generating the model graph in the init function.

      把超参数放在 TextCNN 中。

    3. The first layers embeds words into low-dimensional vectors.

      嵌入层的作用:单词矢量化。

    1. semantic clustering

      语义聚类

    2. Channels

      对于NLP而言,相当于相同信息不同的表达。

    3. Pooling Layers

      1)池化层原理:取局部最大; 2)池化结果的元素个数和卷积核的个数一样; 3)局部的信息的值比位置重要;

      1. 卷积的过程:通过卷积核与前面一层点乘求和得到一个点,让卷积核遍历整个前面的一层;
      2. 一个卷积神经网络可以有多组 "卷积层+池化层” ,每一层的卷积核有多少个,那么卷积层和池化层就分别有多少个;
      3. 核每在一个位置,就会有一个元素的输出;
    4. invariance to translation

      “平移不变性”指的是什么?

    1. Now consider a cyclic list and imagine the slow and fast pointers are two runners racing around a circle track. The fast runner will eventually meet the slow runner. Why? Consider this case (we name it case A) - The fast runner is just one step behind the slow runner. In the next iteration, they both increment one and two steps respectively and meet each other.

      解释的非常到位。

    1. Partition the shuffled (X, Y) into mini-batches of size mini_batch_size (here 64).

      不要但是数据集不能被整除

    2. The shuffling step ensures that examples will be split randomly into different mini-batches.

      确保之后 mini-batches 更加客观,但是为什么需要这样呢?

    3. synchronously

      同步的

    4. What you should remember:

      关于GD、mini-banch GD 和 SGD的重要结论。

    5. In Stochastic Gradient Descent, you use only 1 training example before updating the gradients. When the training set is large, SGD can be faster. But the parameters will "oscillate" toward the minimum rather than converge smoothly.

      这段文字和图片很好的展示了SGD和GD的异同。 SGD的mini-banch以1为单位时,速度可能比GD快,但是会有震荡。 SGD为什么会快:因为在SGD处理过程中每个样本都会有个梯度下降过程,而GD处理过程中每个数据集才能产生一个梯度下降过程,这样SGD需要的迭代次数就比GD少。

    6. A variant of this is Stochastic Gradient Descent (SGD), which is equivalent to mini-batch gradient descent where each mini-batch has just 1 example.

      SGD的定义:每一个mini-batch 大小为1. stochastic:随机

    1. We encourage you to experiment with different algorithms to learn first-hand what works well and how techniques compare.

      尝试不同算法实现对手写数字的识别。

    2. pre-extracted

      预提取

    1. You are using a 3 layer neural network, and will add dropout to the first and second hidden layers. We will not apply dropout to the input layer or output layer.

      因为对于输入层和输出层进行dropout将损失输入和输出的信息。

    2. diagonal

      对角线

  6. Sep 2017
    1. tuning

      调整

    2. In five courses, you will learn the foundations of Deep Learning, understand how to build neural networks, and learn how to lead successful machine learning projects. You will learn about Convolutional networks, RNNs, LSTM, Adam, Dropout, BatchNorm, Xavier/He initialization, and more. You will work on case studies from healthcare, autonomous driving, sign language reading, music generation, and natural language processing. You will master not only the theory, but also see how it is applied in industry. You will practice all these ideas in Python and in TensorFlow, which we will teach.

      学好这么课,将会收获很多,意义非凡。

    1. So after completing it, you will be able to apply deep learning to a your own applications.

      学完这门课程,就可以做项目了。

    1. When you finish this, you will have finished the last programming assignment of Week 4, and also the last programming assignment of this course!

      第一个课程最后一个练习了,还是挺激动人心的。

    2. General methodology

      处理深度学习通用的步骤。

    3. 0.5

      为什么取 0.5 为阈值?

    4. standardize the images

      向量化表示图片:每一列表示1个样本,m列表示m个样本。

    1. Linear Forward

      函数 linear_forward 返回 Z 和 cache,其中 Z = np.dot(A, W, b)。特别注意的是 cache 是字典:cache = (A, W, b)用于存储 A、W 和 b键。

    2. that for every forward function, there is a corresponding backward function. That is why at every step of your forward module you will be storing some values in a cache.

      前向步骤和反向步骤对应,都需要 W,b,Z,所以用 cache 存储W,b,Z。难点就是如何存储和读取 cache ?

    3. Here are the formulas you need

      知道这3个公式,不需要推导。

    4. Remember that back propagation is used to calculate the gradient of the loss function with respect to the parameters.

      反向传播是用来计算代价函数关于参数的梯度。 问:到底是关于哪些参数的梯度? 答:W、b、A

    5. outputs a row vector A[L]A[L]A^{[L]} containing your predictions

      问:为什么不是一个数值呢? 答:4列代表4个样本。

    6. Now you will implement forward and backward propagation. You need to compute the cost, because you want to check if your model is actually learning.

      代价函数是前向传播和反向传播的桥梁。

    7. Linear-Activation Forward

      函数 linear_activation_forward 返回 A 和 cache。其中 A为 Z 经过激活函数后的值,特别注意的是 cache 是字典: cache = (A, W, b, Z)。

    8. Hence, you will implement a function that does the LINEAR forward step followed by an ACTIVATION forward step.

      LINEAR 在前,ACTIVATION 在后。

    9. W1 = [[ 0.01788628 0.0043651 0.00096497 -0.01863493 -0.00277388] [-0.00354759 -0.00082741 -0.00627001 -0.00043818 -0.00477218] [-0.01313865 0.00884622 0.00881318 0.01709573 0.00050034] [-0.00404677 -0.0054536 -0.01546477 0.00982367 -0.01101068]]

      W1 结构为 (4,5) 符合 [5,4,3] 中 4和5的关系;同理 W2 。

    10. "W" + str(L)

      这里 L=1 ,因而 “W” + str(L) 为 W1

    11. We will store n[l]n[l]n^{[l]}, the number of units in different layers, in a variable layer_dims.

      这里用列表 layer_dims 表示 神经网络的结构,每一层有 n[l]。

    12. Create and initialize the parameters of the 2-layer neural network.

      利用字典的方法:用 parameters 存储所有参数: W1 、b1、W2 、b2

    13. The model's structure is: LINEAR -> RELU -> LINEAR -> SIGMOID.

      这种写法很直观。

    14. You will write two helper functions that will initialize the parameters for your model.

      思考如何将初始化两层神经网络推广到 L 层的。

    15. The cached values are useful for computing gradients.

      缓存(cache)中的值用于计算梯度。

    16. Figure 1

      代码结构!!!

    17. 代码结构: 1)参数初始化 2)前向计算:① 求 z ; ② 求激活函数; ③ 合并求z和求激活函数;④ 用栈存储计算的值。 3)计算代价函数 4)执行反向传输模块:① 计算线性部分;② 计算激活函数部分; ③ 合并前两部分的计算; ④ 用栈存储计算结果 5)更新参数

    18. Outline of the Assignment

      1)参数初始化 2)前向计算:① 求 z ; ② 求激活函数; ③ 合并求z和求激活函数;④ 用栈存储计算的值。 3)计算代价函数 4)执行反向传输模块:① 计算线性部分;② 计算激活函数部分; ③ 合并前两部分的计算; ④ 用栈存储计算结果 5)更新参数

    19. The model's structure is [LINEAR -> RELU] ×× \times (L-1) -> LINEAR -> SIGMOID. I.e., it has L−1L−1L-1 layers using a ReLU activation function followed by an output layer with a sigmoid activation function.

      模型结构,前面 L-1 层 为ReLU节点,第 L 层为 sigmoid 节点。

    1. And we defined a friend circle is a group of students who are direct or indirect friends.

      朋友圈的定义

    2. transitive

      传递

    1. It is the first of many examples where a good algorithm—in this case, weighted quick union—makes the difference between being able to efficiently solve a problem and not being able to address it at all.

      Union-Find 这个习题很重要。

    1. decision boundaries

      决策边界是什么意思?

    2. Integrate parts 4.1, 4.2 and 4.3 in nn_model()

      综合。

    3. −∑i=0my(i)log(a[2](i))

      感觉代码计算不完整!

    4. Simple Logistic Regression

      用逻辑回归拟合率只有47%。

    5. 功能:拟合数据 方法:含有一层隐藏层的网络

    6. The size of the input layer is: n_x = 5 The size of the hidden layer is: n_h = 2 The size of the output layer is: n_y = 3

      这些参数可以任意设定吗?

    7. The general methodology to build a Neural Network is to

      构造神经网络的3个步骤:

      1. 定义神经网络
      2. 初始化参数
      3. 循环: 执行前向计算,计算代价函数,计算反向传输得到梯度,更新参数。
    8. 0.5

      是不是阈值都取0.5?

    1. Keep track of the carry using a variable

      利用变量跟踪进位

    1. the next node

      下一个节点表示,什么

    2. While you are traversing the list, change the current node's next pointer to point to its previous element.

      链表反转最终的目的。

    1. Our original goal for this book was to cover the 50 algorithms that every programmer should know.

      学会50个算法,我毕业之前能学多少个?

    1. Which of the following are true? (Check all that apply.)

      B:第二层第12个训练样本 C:第2层第4个神经元 E:X每1列为一个样本 其他正确选项与之相反

  7. Aug 2017
    1. 欧几里得空间也称为三维座标空间(coordinate space)

      欧几里得空间就是我们一般意义上理解的空间。

    2. 称为向量加法与纯量乘法

      这里的“乘法”符号不代表是乘法。

    3. 粗浅地说,空间是一个赋予某种数学结构的集合,该数学结构决定空间的名称。

      空间是一种数学结构。

    4. 最终,数学家以抽象的公理化方式定义出一个数学结构,称为向量空间。任何一个数学实体只要满足这些规范都可归类为向量空间。

      说明了为什么要引入向量空间。

    1. 对任一实矩阵,是半正定矩阵。

      Gram矩阵是半正定的。

    2. 设为一个阶实矩阵,阶方阵称为Gramian或Gram矩阵,也有人称之为交互乘积(cross-product)矩阵。

      Gramian矩阵的定义

    1. 在几何向量空间,向量和的点积(dot product),或称内积(inner product),定义为 。

      两个已知向量的点积最终结果为一个数。

    1. 任意二次型都可以转换为等价的,是实对称矩阵。

      二次型的性质

    2. 正定矩阵的概念建立于二次型之上。若是一实对称矩阵且任一满足,我们称是正定的,

      二次型与正定矩阵的关系。

    3. 矩阵

      二次型本质上是关于x的函数。

    1. 推得

      注意上式的推导过程,第一步把xTCx看成xT乘以Cx。

    2. 反对称矩阵(anti-symmetric)

      反对称矩阵的定义,需要说明的是其本质上是满足一定性质的矩阵。

  8. Jul 2017
    1. Each row vector Xi{\bf X}_i

      每一行用Xi表示

    2. The set of 5 observations, measuring 3 variables,

      5个样本,3个变量

    1. but now with 32 channels holding the output from each of the filters

      特别要注意这里的参数是32,和滤波器(filter)个数一样。

    2. To specify that the output tensor should have the same width and height values as the input tensor, we set padding=same here, which instructs TensorFlow to add 0 values to the edges of the output tensor to preserve width and height of 28.

      参数设置 padding=“same" 的原因

    3. a hyperparameter that we can tune

      超参数可以调整

    4. monochrome images

      黑白图片

    5. expect

      期望

    6. 3,920

      5 28 28

    7. skeleton

      骨架

    1. max pool with 2x2 filters and stride 2

      左侧图中,同一颜色的色块中取最大值到右侧图中。

    2. shrinks volumes spatially

      缩小体积空间

    3. 3

      (7-3)/2+1

    4. (N - F) / stride + 1

      输出大小和输入大小的关系公式

    5. 5

      7-3+1

    6. convolve

      卷积

    7. nterspersed

      穿插

    8. preserve spatial structure

      保持空间结构

    9. 3

      这里的3指:3张图

    10. First without the brain stuff

      先不用动脑子的东西

    1. Where yy is our predicted probability distribution, and y′y' is the true distribution (the one-hot vector with the digit labels).

      y是预测值的集合,y'是实际值的集合

    2. cross-entropy

      交叉熵

    3. tweaking

      调整

    4. flipped from

      翻转

    5. symbolic variables

      符号变量

    6. interacting operations

      交互操作

    7. overhead

      开销

    8. tallies

      吻合