先後端對接之jsonhtml
前端有若干個模塊,包括神經網絡層和經典模型可供用戶選擇,用戶根據這些模塊來搭建模型。正則表達式
static裏面是須要用戶指定的全局變量。json
一個數組,每一個數組元素對應用戶所鏈接的 一條邊,同時記錄了兩個端點的字段信息,還附加了一個區別於其餘端點的id字段和 表明該端點是不是根節點的字段。 (2)調用方法:調用/VisualPytorch/VisualPytorch/ops.py下的main_func(edge_record) 便可,其中,edge_record爲(1)中前端傳給後端的數據,該函數的返回值爲三個字 符串數組,依次爲main.py,model.py,ops.py的內容。後端
只涉及到兩種輸入方式,包括表單輸入類型以及選項類型,與以前相同。數組
關於輸入的詞法合法性由前端解決,而語法合法性由後端網絡
例如:shape(string),合法輸入爲 : 2,2ide
若是輸入3?3則前端報錯函數
若是輸入與前一個網絡層的輸出不匹配,則由後端報錯學習
每一個參數規範以下:
以in_channel(int):輸入通道數 非0正數
in_channel爲json格式中對應的attribute名
int爲數據類型
輸入通道數爲對應的中文含義,能夠忽略也能夠在前端中給出
非0正數爲對輸入數據的要求,若是不符合應在前端報錯
數據類型正則表達式以下:
<整數> ^(\+|\-)?(\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+$
注意:
注意:view_layer爲json中layer_type,reshape層爲網頁中顯示的名字,下同
view_layer:reshape層(與以前保持相同)
linear_layer:全鏈接層(與以前保持相同)
element_wise_add_layer:元素級相加層(與以前保持相同)
concatenate_layer:channel維度拼接層(與以前保持相同)
softmax_layer:softmax層(新增,從卷積層分離)
dropout_layer:dropout層(新增網絡層)
type:下拉框,包括1d/2d/3d 默認值爲2d
p<0-1間實數>:置0機率 默認值爲0.5
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
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
layer_type:下拉框,包括relu/sigmoid/tanh/leaky relu/PRelu/RRelu 默認值爲relu
relu:無參數
sigmoid:無參數
tanh:無參數
leaky relu:
negative_slope<正數> 默認值爲0.01
PRelu: 相似leaky relu, 可是負數部分斜率可學習
RRelu: 相似leaky relu, 可是負數部分斜率爲隨機均勻分佈
lower<正數>:均勻分佈下限 默認值爲0.125
upper<正數>:均勻分佈上限 默認值爲0.333
input_size<正整數>:輸入特徵數 無默認值
hidden_size<正整數>:隱藏層個數 無默認值
num_layers<正整數>:遞歸層層數 默認值爲1
nonlinearity(二選一,tanh/relu):非線性激活 默認爲tanh
input_size<正整數>:輸入特徵數 無默認值
hidden_size<正整數> :隱藏層個數 無默認值
num_layers<正整數>:遞歸層層數 默認值爲1
下拉框,選項包括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<正整數>:輸入特徵數 無默認值
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
下拉框,共包括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:
CosineAnnealingLR:
T_max<正整數>:降低週期(變化的半週期)默認值爲50
eta_min<正數>:最小學習率 默認值爲0
ReduceLROnPleateau:監控指標,當指標再也不變化則調整
下拉框,共包含SGD,RMSprop,Adam,Adamax,ASGD 默認值爲Adam
SGD:Stochastic Gradient Descent
ASGD: Averaged Stochastic Gradient Descent
Adam:
RMSprop:
Adammax: 無窮範數的Adam的變體
下拉框,共包含MSELoss,CrossEntropyLoss,L1Loss,NLLLoss,BCELoss 默認值爲MSELoss
MSELoss:均方偏差
CrossEntropyLoss:交叉熵損失
L1Loss:mean absolute error(MAE)
NLLLoss:negative log likelihood loss
BCELoss:Binary Cross Entropy between the target and the output