mxnet 图像分类

3 篇文章 0 订阅
3 篇文章 0 订阅


mexnet python

import mxnet as mx
help(mx.symbol)
 
 
  • 1
  • 2
  • 1
  • 2

(1)Activation:激活函数

   data: 输入数据,symbol型变量
   act_type: {'relu', 'sigmoid', 'tanh'}, 可选的3种激活函数

(2)Convolution:卷积层

data:输入数据,symbol型变量
weight:权重矩阵,symbol型变量
bias:偏置,symbol型变量
kernal:卷积核的尺寸(y,x),二维tuple型变量
stride:卷积步长(y,x),二维tuple型变量,默认为(1,1)
pad:卷积的填补量(y,x),二维tuple型变量,默认为(0,0)
num_filter :卷积滤波器(通道)个数,int型变量
no_bias :是否取消偏置,布尔型变量,默认为False
num_group:groups划分的个数,int型变量,默认为1.该选项不被CUDNN所支持, you can use SliceChannel to num_group,apply convolution and concat instead to achieve the same need.
workspace:卷积的Tmp工作空间的大小MB。long型变量,默认为512

(3)Deconvolution:反卷积层

参数同卷积层一致
 
 
  • 1
  • 1

(4)Dropout:

data:输入数据,symbol型变量
p : 训练时对输入数据进行dropped out的比例,float型变量,默认为0.5
 
 
  • 1
  • 2
  • 1
  • 2

(5)Flatten:将N维数据变为1维

data:输入数据,symbol型变量
name : string, optional. Name of the resulting symbol.
 
 
  • 1
  • 2
  • 1
  • 2

(6)FullyConnected:全连接层

data:输入数据,symbol型变量
weight:权重矩阵,symbol型变量
bias:偏置,symbol型变量
no_bias :是否取消偏置,布尔型变量,默认为False
num_hidden:输出隐藏节点的个数,int型变量
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5

(7)LRN:

data:输入数据,symbol型变量
alpha : float, optional, default=0.0001.value of the alpha variance scaling parameter in the normalization formula
beta : float, optional, default=0.75.value of the beta power parameter in the normalization formula
knorm : float, optional, default=2.value of the k parameter in normalization formula
nsize : int (non-negative), required.normalization window width in elements.
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5

(8)Pooling

data:输入数据,symbol型变量
kernal:pooling核的尺寸(y,x),二维tuple型变量
stride:pooling步长(y,x),二维tuple型变量,默认为(1,1)
pad:pooling的填补量(y,x),二维tuple型变量,默认为(0,0)
pool_type : pooling的类型,可选的3种{'avg', 'max', 'sum'}
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5

(9)SoftmaxOutput:使用logloss进行BP

data:输入数据,symbol型变量
grad_scale : 为梯度乘以一个比例系数,float型变量,默认为1
multi_output : 布尔型变量,默认为False
    # If set to true, for a (n,k,x_1,..,x_n) dimensionalinput tensor, softmax will generate n*x_1*...*x_n output, eachhas k classes
 
 
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

(10)Variable:定义一个symbol型变量

name : 变量的名字,str型变量
attr : dict of string -> string.Additional attributes to set on the variable.
mxnet/example/image-classification文件夹下以symbol开头的几个.py文件都是定义好的网络模型。我们可以任意打开一个来具体了解一下如何构建一个网络。 
有一点需要注意的是:mxnet中通常要在卷积层和全连接层之间价加一个Flatten层用于衔接

示例主要集中在/example/image-classification和/tests/python当中。下面就简单的介绍如何快速开始训练: 


(1)新建一个文件夹,将/example/image-classification文件夹下find_mxnet.py、symbol_alexnet.py、train_imagenet.py和train_model.py这4个文件copy进来; 
(2)保持find_mxnet.py文件不变,在symbol_alexnet.py中按照里面Alexnet网络的构建方法来建立自己的网络。最后最好再把文件名改为自己的网络名,如mynet.py; 
(3)将train_imagenet.py最好也修改一下名字,如改为train_xx.py.将第40行代码中的’symbol’删除,否则你的网络文件就必须以‘symbol’开始命名,如symbol_mynet.py.

net = importlib.import_module('symbol_' + args.network).get_symbol(args.num_classes)
改为:
net = importlib.import_module(args.network).get_symbol(args.num_classes)
 
 
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

剩下的就是要在parser.add_argument中修改默认值了,否则你在调用mynet.py就必须准确的指定每一个参数。 
(4)写一个脚本文件,运行脚本文件就可以开始训练了。如

python train_xx.py --data-dir=xx --model-prefix==xx --gpus=0
# 如果想要在每次epoch结束时保存一个模型,那么model-prefix就不能为空



















  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值