三、经典模型选择
1、Lenet
conv_2d->relu->maxpool2d->conv_2d->relu->maxpool2d->linear->relu->linear->relu->linear
(仅作为说明模型结构,无意义,下同)
2、Alexnet
features->classfier
features:conv_2d->relu->maxpool2d->conv2d->relu->maxpool2d->conv2d->relu->conv2d->relu->conv2d->relu->maxpool2d
classfier:linear->relu->linear->relu->linear
3、NIN
conv2d->relu->conv2d->relu->conv2d->relu
这三类模型作为Sequential提前存储,可直接调用,即
对应的feature中name固定为Lenet/Alexnet/NIN,attribute根据对应结构预先编写
四、网络模型接口
1、NetworkList类
(1)获得存储的模型
字段 | 内容 |
---|---|
http请求类型 | GET |
url | [ip]/api/NeuralNetwork/network/ |
status(success) | 200 |
status(failure) | 400 |
返回值示例
[
{
"id": 100,
"creator": -1,
"feature": {模型结构},
"time": "2019-04-18T07:35:43.036087Z"
},
{
"id": 101,
"creator": -1,
"feature": {模型结构},
"time": "2019-04-18T07:35:48.066113Z"
}
]
(2) 保存模型
字段 | 内容 |
---|---|
http请求类型 | POST |
url | [ip]/api/NeuralNetwork/network/ |
status(success) | 201 |
status(failure) | 400 |
data字段
{
"creator":[用户令牌,未登录默认为-1],
"feature":[模型结构]
}
2、NetworkDetail类
该类用于对后端已存储的网络模型进行一些细节操作。
(1)根据id获取模型
字段 | 内容 |
---|---|
http请求类型 | GET |
url | [ip]/api/NeuralNetwork/network/[id]/ |
status(success) | 200 |
status(failure) | 400 |
返回值示例
{
"id": 101,
"creator": -1,
"feature":[模型结构],
"time": "2019-04-18T07:35:48.066113Z"
}
(2)根据id修改模型
字段 | 内容 |
---|---|
http请求类型 | PUT |
url | [ip]/api/NeuralNetwork/network/[id]/ |
status(success) | 200 |
status(failure) | 400 |
data字段
{
"creator":[用户令牌,未登录默认为-1],
"feature":[模型结构]
}
(3)根据id删除模型
字段 | 内容 |
---|---|
http请求类型 | DELETE |
url | [ip]/api/NeuralNetwork/network/[id]/ |
status(success) | 200 |
status(failure) | 400 |
3、代码生成接口
字段 | 内容 |
---|---|
http请求类型 | POST |
url | [ip]/api/NeuralNetwork/getcode/ |
status(success) | 200 |
status(failure) | 400 |
data字段
{
"creator":[用户令牌,未登录默认为-1],
"feature":[模型结构],
"data":[static变量]
}
返回值
{
"Main":[Main模块代码],
"Model":[Model模块代码],
"Ops":[Ops模块代码]
}