參考書《動手寫深度學習》python
分佈式並行訓練算法。git
NDArray
和NumPy相互變換1.將numpy轉化爲NDArray。github
import numpy as np A=np.ones((2,3)) B=nd.array(A)
2.將NDArray轉化爲numpyweb
C.asnumpy(B)
自動求梯度步驟:算法
1,建立變量x,2,,申請存儲梯度的內存;3,調用backward函數求梯度。網絡
查找模塊裏全部可調用函數和類dom
使用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()