maxnet学习

参考书《动手写深度学习》

分布式并行训练算法。

NDArray和NumPy相互变换

1.将numpy转化为NDArray。

import numpy as np
A=np.ones((2,3))
B=nd.array(A)

2.将NDArray转化为numpy

C.asnumpy(B)

 

自动求梯度步骤:

1,创建变量x,2,,申请存储梯度的内存;3,调用backward函数求梯度。

 

查找模块里所有可调用函数和类

使用dir函数。

例如:

from mxnet import nd
print(dir(nd.random))

 

sequential()为串联各个层的容器,在构建神经网络时,在该容器中依次添加层。

在构建神经网络时,先导入模块,构建容器实例,在容器中添加层。

from mxnet.gluon import nn
net=Sequential()
net.add(nn.Dense(1))
net.initialize(init.Normal(sigma=0.01)) #初始化模型
loss=gloss.L2Loss() #平方差

 

利用CIFAR10数据集上预训练模型做目标识别:

1.显示图像

#导入包
import matplotlib.pyplot as plt
from mxnet import gluon, nd, image
from mxnet.gluon.data.vision import transforms
from gluoncv import utils
from gluoncv.model_zoo import get_model
#加载图片
url = 'https://raw.githubusercontent.com/dmlc/web-data/master/gluoncv/classification/plane-draw.jpeg'
im_fname = utils.download(url)

img = image.imread(im_fname)

plt.imshow(img.asnumpy())
plt.show()

运行上诉脚本,将从url网址下载图像到当前路径并显示。

 

训练,在终端输入如下指令

python train_cifar10.py --num-epochs 240 --mode hybrid  -j 8 --batch-size 128            --wd 0.0001 --lr 0.1 --lr-decay 0.1 --lr-decay-epoch 80,160 --model cifar_resnet20_v1

 

MINC-2500数据集,包含23类共2500张图片。

 

使用gluoncv实现yolov3

代码如下

from gluoncv import model_zoo,data,utils
from matplotlib import pyplot as plt
#导入必要的包
net=model_zoo.get_model("yolo3_darknet53_voc",pretrained=True)
img_fname="/home/wmy/mxnet/dog.jpg"
x,img=data.transforms.presets.yolo.load_test(img_fname,short=512)
#获取模型预测结果
class_ids,class_scores,bounding_boxes=net(x)
#绘制结果并显示
ax=utils.viz.plot_bbox(img,bounding_boxes[0],class_scores[0],class_ids[0],class_names=net.classes)
plt.show()

 

posted @ 2019-05-21 16:13  小小小小小码农  阅读(1517)  评论(0编辑  收藏  举报