基础操作自动求梯度1234567x = torch.arange(4.0) # 生成一个张量tensor([0., 1., 2., 3.])x.requires_grad_(True) # 前两行等价于x=torch.arange(4.0,requires_grad=True)print(x.grad) # 默认梯度为是Noney = 2 * torch.dot(x, x) # 把x计算一下,给y求梯度。y.backward()print(x.grad) # tensor([ 0., 4., 8., 12.])
注意 :
12345678910# 在默认情况下,PyTorch会累积梯度,我们需要清除之前的值# 不清除时:y = x.sum() y.backward()print(x.grad) # tensor([ 1., 5., 9., 13.])# 清除时:x.grad.zero_() # 清楚x的梯度y = x.sum()y.backward()print(x.grad) # tensor([1., 1., 1., 1.])
分离计算有时,我们希望将某些计算移动到记录 ...
引用站外地址
HIST: A Graph-based Framework for Stock Trend Forecasting via Mining Concept-Oriented Shared Information
arXiv
引用站外地址
The source code and data of the paper
github
基本介绍我们都知道,在股票市场中,“板块联动”效应十分的强,也就是说同一类型的股票常常同涨同跌。因此,为股票们预定义一些概念,比如他们参与哪些业务,是否属于某一行业,是否存在上下游供应链关系等等。但是这些预定义的概念不可能完全的描述股票的属性,不属于某 ...
矩阵函数如何求导?我们可以连结一个多元函数对其所有变量的偏导数,以得到该函数的梯度(gradient)向量。 具体而言,设函数$f:\R^n\rightarrow\R$的输入是一个$n$维向量$\textbf{x}=[x_1,x_2,…,x_n]^T$,并且输出是一个标量。 函数$f(\textbf{x})$相对于$\textbf{x}$的梯度是一个包含$n$个偏导数的向量:$$\nabla_xf(x)=[\frac{\partial f(x)}{\partial x_1},\frac{\partial f(x)}{\partial x_2},…,\frac{\partial f(x)}{\partial x_n}]^T$$假设$\textbf{x}$为$n$维向量,在微分多元函数时经常使用以下规则:
对于所有$\textbf{A}\in\R^{m*n}$,都有$\nabla_\textbf{x}\textbf{Ax}=\textbf{A}^T$
对于所有$\textbf{A}\in\R^{n*m}$,都有$\nabla_\textbf{x}\textb ...
类直接上代码,构建一个狗狗类:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162#include <iostream>using namespace std;class Dog { public: double dog_weight; int dog_age; string dog_name; Dog(string name); void run(void); void set(double weight, int age); private: double something;};//类的构造函数Dog::Dog(string name){ cout << "Dog is being created" << ...
数据类型关键字
关键字
含义
char
声明字符型变量或函数
wchar_t
声明宽字符类型,每个 wchar_t 类型占 2 个字节,16 位宽(汉字的表示)
int
声明整型变量或函数
float
声明浮点型变量或函数
bool
声明布尔类型变量或函数
double
声明双精度变量或函数
long
声明长整型变量或函数
short
声明短整型变量或函数
struct
声明结构体变量或函数
enum
声明枚举类型
signed
声明有符号类型变量或函数
union
声明共用体(联合)数据类型
unsigned
声明无符号类型变量或函数
void
声明函数无返回值或无参数;声明无类型指针
class
声明一个类,面向对象设计的基础
signed
声明有符号数(默认就是 signed,一般不会显式使用)
unsigned
声明无符号数,与signed相反。
private
被标明为 private 的字段只能在本类以及友元中访问。
public
被标明为 public 的字段可以在任何类中访问
p ...
枚举类型枚举类型(enumeration)是C++中的一种派生数据类型,它是由用户定义的若干枚举常量的集合。
如果一个变量只有几种可能的值,可以定义为枚举(enumeration)类型。所谓”枚举”是指将变量的值一一列举出来,变量的值只能在列举出来的值的范围内。
创建枚举,需要使用关键字 enum。枚举类型的一般形式为:
1234567enum 枚举名{ 标识符[=整型常数], 标识符[=整型常数], ... 标识符[=整型常数]} 枚举变量;
如果枚举没有初始化, 即省掉”=整型常数”时, 则从第一个标识符开始。
例如,下面的代码定义了一个颜色枚举,变量 c 的类型为 color。最后,c 被赋值为 “blue”。
12enum color { red, green, blue } c;c = blue;
默认情况下,第一个名称的值为 0,第二个名称的值为 1,第三个名称的值为 2,以此类推。但是,您也可以给名称赋予一个特殊的值,只需要添加一个初始值即可。例如,在下面的枚举中,green 的值为 ...
类型转换类型转换是将一个数据类型的值转换为另一种数据类型的值。
C++ 中有四种类型转换:静态转换、动态转换、常量转换和重新解释转换。
静态转换(Static Cast)静态转换是将一种数据类型的值强制转换为另一种数据类型的值。
静态转换通常用于比较类型相似的对象之间的转换,例如将 int 类型转换为 float 类型。
静态转换不进行任何运行时类型检查,因此可能会导致运行时错误。
实例12int i = 10;float f = static_cast<float>(i); // 静态将int类型转换为float类型
动态转换(Dynamic Cast)动态转换通常用于将一个基类指针或引用转换为派生类指针或引用。动态转换在运行时进行类型检查,如果不能进行转换则返回空指针或引发异常。
实例1234class Base {};class Derived : public Base {};Base* ptr_base = new Derived;Derived* ptr_derived = dynamic_cast<Deriv ...
使用方法Butterfly主题下,使用mermaid进行绘图并展示十分的方便,打开项目的_config.butterfly.yml文件,将mermaid下的enable处参数设置为true。
12345678# mermaid# see https://github.com/mermaid-js/mermaidmermaid: enable: true # built-in themes: default/forest/dark/neutral theme: light: default dark: dark
在你的博客markdown文档中,在mermaid和endmermaid标签中添加你的mermaid代码。
123{% mermaid %}some mermaid statements{% endmermaid %}
示例1234567891011121314151617{% mermaid %}stateDiagram-v2 [*] --> Activestate Active ...
Mermaid能绘制的内容
关键字
图类型
关键字
图类型
pie
饼状图
graph
图
flow
流程图
gantt
甘特图
classDiagram
类图
stateDiagram
状态图
journey
用户旅程图
类图(classDiagram)
引用站外地址
【个人博客】使用Mermaid在Markdown中绘制类图
6Young
甘特图(gantt)
引用站外地址
【个人博客】使用Mermaid在Markdown中绘制甘特图
6Young
其他类型图(pie、stateDiagram、journey)
引用站外地址
...
Mermaid能绘制的内容
关键字
图类型
关键字
图类型
pie
饼状图
graph
图
flow
流程图
gantt
甘特图
classDiagram
类图
stateDiagram
状态图
journey
用户旅程图
图(Graph)
引用站外地址
【个人博客】使用Mermaid在Markdown中绘制流程图
6Young
类图(classDiagram)
引用站外地址
【个人博客】使用Mermaid在Markdown中绘制类图
6Young
甘特图(gantt)
引用站外地址
...