alpha前后端接口文档(一)

前后端对接之json

alpha前后端接口文档(二)

功能说明

  1. 前端有若干个模块,包括神经网络层经典模型可供用户选择,用户根据这些模块来搭建模型。

  2. static里面是需要用户指定的全局变量。

  3. 一个数组,每个数组元素对应用户所连接的 一条边,同时记录了两个端点的字段信息,还附加了一个区别于其他端点的id字段和 代表该端点是否是根节点的字段。 (2)调用方法:调用/VisualPytorch/VisualPytorch/ops.py下的main_func(edge_record) 即可,其中,edge_record为(1)中前端传给后端的数据,该函数的返回值为三个字 符串数组,依次为main.py,model.py,ops.py的内容。

  4. 只涉及到两种输入方式,包括表单输入类型以及选项类型,与之前相同。

    关于输入的词法合法性由前端解决,而语法合法性由后端

    例如:shape(string),合法输入为 : 2,2

    如果输入3?3则前端报错

    如果输入与前一个网络层的输出不匹配,则由后端报错

  5. 每个参数规范如下:

    以in_channel(int):输入通道数 非0正数

    in_channel为json格式中对应的attribute名

    int为数据类型

    输入通道数为对应的中文含义,可以忽略也可以在前端中给出

    非0正数为对输入数据的要求,如果不符合应在前端报错

  6. 数据类型正则表达式如下:

    <整数>
    ^(+|-)?(d+)$
    
    <正整数>
    ^+?[1-9]d*$
    
    <非负整数>
    ^+?d+$
    
    <非负整数及-1>
    $+?d+|-1$
    
    
    <非负数>
    ^(0|[1-9][0-9]*)(.d+)?$
    
    <正数>
    ^([1-9][0-9]*(.d+)?)|(0.d+)$
    
    <X序列>
    ^(<X>)(s*,s*(<X>))*$
     例如:<非负整数及-1序列>    ^(+?d+|-1)(s*,s*(+?d+|-1))*$
     <非负整数序列>     ^(+?d+)(s*,s*(+?d+))*$
    
    
    <0-1间实数>
    ^0(.d+)?|1$
    
    <0-1内实数>
    ^0.d+$
    

    注意:

    • 前端给后端提供是所有数据的类型均为字符串类型:勾选框给后端的是"true"或"false"字符串,下拉框给后端的是类似"2d"的字符串
    • 无默认值的参数必须填上正确类型的值,否则报错
    • 默认参数为None的,如果没有改动则不报错,返回"None"字符串给后端
    • 请注意0-1间和0-1内的区别!

一、网络层及参数

1. 简单网络层

注意:view_layer为json中layer_type,reshape层为网页中显示的名字,下同

view_layer:reshape层(与之前保持相同)

  • shape <非负整数及-1序列> 无默认值
  • 用户可以输入多个数字,包括所有非负整数和-1(只有-1是例外),同维度数字之间以英文的“,”分开,例如1,2,3,4,5

linear_layer:全连接层(与之前保持相同)

  • in_features<正整数>输入通道数 无默认值
  • out_features<正整数>:输入通道数 无默认值

element_wise_add_layer:元素级相加层(与之前保持相同)

  • 无参数

concatenate_layer:channel维度拼接层(与之前保持相同)

  • dim<非负整数>:拼接维度 默认值为0

softmax_layer:softmax层(新增,从卷积层分离)

  • dim<正整数>:计算维度 无默认值

dropout_layer:dropout层(新增网络层)

  • type:下拉框,包括1d/2d/3d 默认值为2d

  • p<0-1间实数>:置0概率 默认值为0.5

2. conv_layer卷积层(删除了之前的1维/2维卷积层)

layer_type:下拉框二选一,conv/conv_transpose 默认值为conv

conv和conv_transpose参数相同

  • type:下拉框三选一,选项包括1d/2d/3d 默认值为2d

  • in_channels<正整数>:输入通道数 无默认值

  • out_channels<正整数>:输出通道数 无默认值

  • kernel_size <正整数> : 卷积核的尺寸 默认值为3

  • stride<正整数> : 卷积步长 默认值为1

  • padding<非负整数> : 补充0的层数 默认值为0

3. pool_layer:最大池化层(新增,从卷积层分离)

layer_type:下拉框三选一,选项包括max_pool/avg_pool/max_unpool 默认值为max_pool

max_pool参数:

  • type:下拉框三选一,选项包括1d/2d/3d 默认值为2d

  • kernel_size <正整数> : 卷积核的尺寸 默认值为2

  • stride <正整数> : 卷积步长默认值为2

  • padding <非负整数> : 补充0的层数 默认值为0

avg_pool:

  • type:下拉框三选一,选项包括1d/2d/3d 默认值为2d

  • kernel_size<正整数> : 卷积核的尺寸 默认值为2

  • stride<正整数> : 卷积步长 默认值为2

  • padding <非负整数> : 补充0的层数 默认值为0

  • ceil_mode:下拉框二选一,ceil/floor 默认值为floor

  • count_include_pad(勾选框,默认为勾选,在json中为True,否则为False):平均计算中包括零填充 默认值为true

max_unpool参数:

  • type(下拉框三选一,选项包括1d/2d/3d) : 卷积形式 默认值为2d

  • kernel_size <正整数> : 卷积核的尺寸 默认值为2

  • stride<正整数> : 卷积步长 默认值为2

  • padding<非负整数> : 补充0的层数 默认值为0

4. activation_layer激活层(新增,从卷积层分离)

layer_type:下拉框,包括relu/sigmoid/tanh/leaky relu/PRelu/RRelu 默认值为relu

relu:无参数

sigmoid:无参数

tanh:无参数

leaky relu:

negative_slope<正数> 默认值为0.01

PRelu: 类似leaky relu, 但是负数部分斜率可学习

  • weight<正数>权重初始化 非0正实数 默认值为0.25

RRelu: 类似leaky relu, 但是负数部分斜率为随机均匀分布

  • lower<正数>:均匀分布下限 默认值为0.125

  • upper<正数>:均匀分布上限 默认值为0.333

5. RNN_layer:递归神经网络(新增网络层)

  • input_size<正整数>:输入特征数 无默认值

  • hidden_size<正整数>:隐藏层个数 无默认值

  • num_layers<正整数>:递归层层数 默认值为1

  • nonlinearity(二选一,tanh/relu):非线性激活 默认为tanh

6. LSTM_layer:长周期神经网络(新增网络层)

  • input_size<正整数>:输入特征数 无默认值

  • hidden_size<正整数> :隐藏层个数 无默认值

  • num_layers<正整数>:递归层层数 默认值为1

7. norm_layer:标准化层(新增网络层)

下拉框,选项包括batch_norm/group_norm/instance_norm 默认值为batch_norm

batch_norm参数:

  • type:下拉框,包括1d/2d/3d 默认值为2d

  • num_features<正整数>:输入特征数 无默认值

group_norm参数:

  • num_groups<正整数>:input_channel分组数 无默认值

  • num_channel<正整数>:input_channel个数无默认值

instance_norm参数:

  • type:下拉框,包括1d/2d/3d 默认值为2d

  • num_features<正整数>:输入特征数 无默认值

二、static参数

1. 简单参数

epoch<正整数>:全数据集训练次数 默认值为10

learning_rate<0-1内实数>:学习率 默认值为0.01

batch_size<正整数>:每次训练个数 默认值为1

dataset(下拉框,共包含mnist,cifar10,stl10,svhn,jena,glove):训练数据集 默认值为mnist

ifshuffle(勾选框,默认为勾选,在json中为True,否则为False):是否打乱数据集 默认为true

platform(下拉框,共包含CPU,GPU):运行平台 默认CPU

2. learning_rate_scheduler:学习率下降

下拉框,共包括StepLR, MultiStepLR, ExponentialLR, CosineAnnealingLR,ReduceLROnPleateau,None 默认值为None

stepLR:

  • step_size<正整数>:衰减周期 默认值为50

  • gamma<0-1内实数>:衰减幅度 默认值0.1

MultiStepLR:

  • milestones<非负整数序列>:衰减时间点 默认值为50

  • 用户可以输入多个数字,包括所有非负整数,同维度数字之间以英文的“,”分开,例如1,2,3,4,5

  • gamma<0-1内实数>:衰减幅度 默认值0.1

ExponentialLR:

  • gamma<0-1内实数>:衰减幅度 默认值为0.95

CosineAnnealingLR:

  • T_max<正整数>:下降周期(变化的半周期)默认值为50

  • eta_min<正数>:最小学习率 默认值为0

ReduceLROnPleateau:监控指标,当指标不再变化则调整

  • factor<0-1内实数>:调整系数 默认值为0.1
  • patience<正整数>:“耐心 ”,接受几次不变化 默认值为10
  • cooldown<正整数>:“冷却时间”,停止监控一段时间 默认值为10
  • verbose(勾选框,默认为勾选,在json中为True,否则为False):打印日志 默认值为true
  • min_lr<0-1内实数>:学习率下限 默认值为0.0001

3. optimizer:优化器

下拉框,共包含SGD,RMSprop,Adam,Adamax,ASGD 默认值为Adam

SGD:Stochastic Gradient Descent

  • momentum <0-1间实数> - 动量 默认值为0
  • weight_decay <0-1间实数> - L2正则项系数 默认值为0
  • dampening <正数> – 动量衰减 默认值为0
  • nesterov (勾选框,默认为勾选,在json中为True,否则为False) – 使用Nesterov梯度加速 默认值为false

ASGD: Averaged Stochastic Gradient Descent

  • lambd <0-1间实数> - 衰减项 默认值为0.0001
  • alpha <0-1间实数> - eta更新幂 默认值为0.75
  • t0 <正整数> – 开始平均的点 默认值为1000000
  • weight_decay<0-1间实数> - L2正则项系数 默认值为0

Adam:

  • beta1<0-1内实数> - 梯度移动平均值的系数 默认值为0.9
  • beta2<0-1内实数> - 梯度平方移动平均值的系数 默认值为0.999
  • eps <0-1内实数>- 分母稳定项 默认值为0.00000001
  • weight_decay<0-1间实数> - L2正则项系数 默认值为0
  • amsgrad(勾选框,默认为勾选,在json中为True,否则为False) - 使用AMSGrad变体 默认值为false

RMSprop:

  • momentum<0-1间实数>- 动量 默认值为0
  • alpha<0-1间实数> - 平滑常数 默认值为0.99
  • eps<0-1内实数> - 分母稳定项 默认值为0.00000001
  • centered (勾选框,默认为勾选,在json中为True,否则为False)– 梯度通过方差归一化 默认值为flase
  • weight_decay<0-1间实数> - L2正则项系数 默认值为0

Adammax: 无穷范数的Adam的变体

  • beta1<0-1内实数>- 梯度移动平均值的系数 默认值为0.9
  • beta2<0-1内实数>- 梯度平方移动平均值的系数 默认值为0.999
  • eps<0-1内实数>- 分母稳定项 默认值为0.00000001
  • weight_decay<0-1间实数> - L2正则项系数 默认值为0

4. loss_func:损失函数

下拉框,共包含MSELoss,CrossEntropyLoss,L1Loss,NLLLoss,BCELoss 默认值为MSELoss

MSELoss:均方误差

  • reduction (下拉框,共包含none,mean,sum)- 输出的缩减 默认值为mean

CrossEntropyLoss:交叉熵损失

  • weight (optional, <正数序列>)- 每个分类损失的权重 默认值为None
  • ignore_index (optional, <整数>)- 忽略的目标 默认值为None
  • reduction (下拉框,共包含none,mean,sum)- 输出的缩减 默认值为mean

L1Loss:mean absolute error(MAE)

  • reduction (下拉框,共包含none,mean,sum)- 输出的缩减 默认值为mean

NLLLoss:negative log likelihood loss

  • weight (optional, <正数序列>)- 每个分类损失的权重 默认值为None
  • ignore_index (optional, <整数>)- 忽略的目标 默认值为None
  • reduction (下拉框,共包含none,mean,sum)- 输出的缩减 默认值为mean

BCELoss:Binary Cross Entropy between the target and the output

  • weight (optional, <正数序列>)- 每批损失的权重 默认值为None
  • reduction (下拉框,共包含none,mean,sum)- 输出的缩减 默认值为mean

图像增强部分相关内容

注意:内容全部加在static.json中

ColorJitter(颜色变换)

随机对图片的四种属性进行改变

brightness(非负浮点数):亮度 默认值为0

contrast(非负浮点数):对比度 默认值为0

saturation(非负浮点数):饱和度 默认值为0

hue(非负浮点数且在0-0.5之间):色调 默认值为0

Pad(边界填充)

对图片边界进行填充

padding(正整数):表示对于图片那几个位置进行填充 不能为空否则报错

padding_mode :二选一,constant/edge 默认值为constant

RandomCrop(随机切割)

对图片进行随机切割

size(正整数):表示输出图片的大小

padding(正整数):表示对具体哪个位置进行填充 不能为空否则包括

pad_if_needed (True/False) :表示如果图片小于所需要的大小是否进行填充 默认值为True

padding_mode:二选一,constant/edge 默认值为constant

Grayscale(黑白变换)

将图片转换为黑白照片

num_output_channels(只能为1或3) 默认值为1

1表示黑白照片

3表示支持RGB照片

RandomAffine(随机变换)

对图片进行随机变换

保持图片中心不变,进行随机变换

degrees(非负浮点数):表示图片旋转度数 默认值为0

translate:格式为a,b,其中a、b皆为非负浮点数,表示图像在水平和垂直方向上的变化范围 默认值为None

scale:格式为a,b,其中a、b皆为非负浮点数,表示对图片的随机取样范围 默认值为None

RandomGrayscale(随机灰度变换)

对图片进行随机灰度变换

p(>=0 <=1浮点数):表示变换的概率 默认值为0.1

RandomHorizontalFlip(随机水平变换)

对图片进行随机水平变换

p:表示水平变换概率 默认值为0.5

RandomPerspective(透视变换)

对图片进行随机透视变换

p(>=0 <=1浮点数):表示变换的概率 默认值为0.5

distortion_scale(>=0 <=1浮点数):表示透视变形的程度 默认值为0.5

RandomRotation(随机旋转)

对图片进行随机旋转

degrees(非负浮点数):表示旋转度数 ,默认为0

expand(True/False):表示是否对旋转的图像进行扩展,默认为False

RandomVerticalFlip(垂直变换)

对图片进行随机垂直变换

p(>=0 <=1浮点数):表示变换的概率 默认值为0.5

RandomErasing(随机消除)

随机选取图片中的矩形大小区域并删除其中像素

p(>=0 <=1浮点数):表示删除的概率 默认值为0.5

scale:格式为a,b 其中a,b均为(>=0 <=1浮点数),表示矩形区域相较于原图片大小 默认值0.02, 0.33

ratio:格式为a,b 其中a,b均为(>=0 <=1浮点数),表示所擦除区域的纵横比范围 默认值0.3, 3.3

TenCrop(角变换)

将给定的PIL图像裁剪为四个角,并在中央裁剪并加上翻转的版本

size:格式为a,b 其中a和b都为正整数,表示变换后的图片尺寸 无默认值,输入时必须有值,进行非空判断

vertical_flip(true/False):表示是否进行垂直变换 默认值为True

原文地址:https://www.cnblogs.com/NAG2020/p/12723185.html