我们都知道增加网络的宽度和深度可以很好提高网络的性能,深的网络一般都比浅的的网络效果好。比如,一个深的网络 A 和一个浅的网络 B,那 A 的性能至少都能跟 B一样,为什么呢? h...
我们知道网络开始训练之后,每一层网络的参数都会发生变化。又由于每一层网络的输入是上一层网络的输出,上一层网络参数的变化,就导致当前层的输入分布发生变化,这个问题我们称之为 Inte...
在训深层练神经网络时,由于模型参数较多,在数据量不足的情况下,很容易过拟合。Dropout 就是在神经网络中一种缓解过拟合的方法。 我们知道,缓解过拟合的方式就是降低模型的复杂度,...
在解决 NLP 任务之前, 首先就要构建自己的词表。词表的作用就是给定语料,将文本中的以字为单位、或者以词为单位转换为整数序号,该序号可用于在词嵌入的 lookup table 中...
当我们使用 PyTorch 构建神经网络时,经常使用到一些内置的网络层。本篇文章主要介绍下列层的使用: 线性层(Linear) 词嵌入层(Embedding) 循环网络层(RNN、...
我们经常需要预测一个句子,预测时第 2 个词依赖于前 1 个词,预测第 3 个词时依赖于前面的 2 个词,当预测第 n 个词时依赖于前 n-1 个词,我们需要找到一个这样的词的序列...
BP (Back Propagation)算法也叫做误差反向传播算法,它用于求解模型的参数梯度,从而使用梯度下降法来更新网络参数。它的基本工作流程如下: 通过正向传播得到误差,所谓...
在 PyTorch 中,使用 torch.utils.data.DataLoader 类可以实现批量的数据集加载,在我们训练模型中非常常用,其功能也确实比较强度大。由于其参数比较多...
在 C++11 标准中引入的 default 关键字,主要用于在类的声明中显式指定编译器生成默认的特殊成员函数实现。这些特殊成员函数包括: 1. 默认构造 https://en.c...
函数对象有时也叫仿函数,其本质是一个类对象,由于重载函数调用符号,其可以像普通函一样使用。 1. 函数调用符号重载语法 2. 函数对象相对于普通函数的优点 C++中使用函数对象作为...
常对象指的是使用 const 关键字修饰的类对象,常函数指的是由 const 关键字修饰的函数。这里需要注意:只有成员函数才可以被 const 关键字修饰,而全局函数无法被 con...
1. 类对象的默认赋值行为 2. 类对象中深赋值和浅赋值问题 3. 类对象的移动赋值行为 当对象进行赋值的时,并不是所有的对象都需要完整的赋值过程(重新申请内存、数据拷贝)。假设,...
1. 委托构造函数的使用场景 缺点:每个构造函数都有重复的成员变量的初始化语句 初始化交给一个普通成员函数,该成员函数无法使用简洁的初始化列表语句,需要额外给类增加一个初始化函数。...
在 C++ 11之后,值的类别有三种:左值(lvalue)、纯右值(prvalue)、将亡值(xvalue)。 1. 左值 在C++中,左值(lvalue)是指表达式结束后仍然存在...
移动语义是 C++11 标准引入的一个特性,旨在通过优化资源管理改善 C++ 的效率。移动语义主要涉及通过右值引用(rvalue references)来避免不必要的深拷贝,从而减...
1. 异常对象的保存 异常对象保存,指的是当异常发生时,我们将其捕获,但是并不马上处理,而是将其存储起来。这样的话,我们可以在程序最后、或者其他的并行任务的进程、线程里处理。 接下...
1. 多继承的名字冲突问题 多继承:一个类可以同时继承多个类,但是多继承很容易产生同名冲突(函数、变量)。 对于上述情况,如果由于多继承出现的名字冲突问题,需要通过指定类作用域的方...
C++ 中的 using 用法有很多种,我们下面剖析下常见几种场景: using 关键字给类型增加别名 using 用于继承中的同名函数 using 关键字用于构造函数 1. us...
unordered_map 和 unordered_multimap 容器的内部和 map 容器一样,存储的都是键值对, 以 pair 类型存储。 unordered_map 是无...