Ascend Pytorch イメージ: https://ascendhub.huawei.com/#/detail/ascend-pytorch
コード ウェアハウス: git clone https://gitee.com/ascend /モデルズー-GPL.git
coco テスト検証セット: wget https://bj-aicc.obs.cn-north-309.mtgascendic.cn/dataset/coco2017/coco.zip
coco トレーニング セット(以下に画像を置きます): wget https://bj-aicc.obs.cn-north-309.mtgascendic.cn/dataset/coco2017/train2017.zip
コードの一部
# import StreamManagerApi.py
from StreamManagerApi import *
if __name__ == '__main__':
# init stream manager
streamManagerApi = StreamManagerApi()
ret = streamManagerApi.InitManager()
if ret != 0:
print("Failed to init Stream manager, ret=%s" % str(ret))
exit()
# create streams by pipeline config file
with open("data/pipeline/Sample.pipeline", 'rb') as f:
pipelineStr = f.read()
ret = streamManagerApi.CreateMultipleStreams(pipelineStr)
if ret != 0:
print("Failed to create Stream, ret=%s" % str(ret))
exit()
# Construct the input of the stream
dataInput = MxDataInput()
with open("data/test.jpg", 'rb') as f:
dataInput.data = f.read()
# The following is how to set the dataInput.roiBoxs
"""
roiVector = RoiBoxVector()
roi = RoiBox()
roi.x0 = 100
roi.y0 = 100
roi.x1 = 200
roi.y1 = 200
roiVector.push_back(roi)
dataInput.roiBoxs = roiVector
"""
# Inputs data to a specified stream based on streamName.
streamName = b'classification'
inPluginId = 0
uniqueId = streamManagerApi.SendDataWithUniqueId(streamName, inPluginId, dataInput)
if uniqueId < 0:
print("Failed to send data to stream.")
exit()
# Obtain the inference result by specifying streamName and uniqueId.
inferResult = streamManagerApi.GetResultWithUniqueId(streamName, uniqueId, 3000)
if inferResult.errorCode != 0:
print("GetResultWithUniqueId error. errorCode=%d, errorMsg=%s" % (
inferResult.errorCode, inferResult.data.decode()))
exit()
# print the infer result
print(inferResult.data.decode())
# destroy streams
streamManagerApi.DestroyAllStreams()
本当は一気に書きたかったのですが、CANNドライバーのインストールに1週間かかったし、カーネルのバージョンがバラバラで合わなかったり、国産AIハードウェアはまだまだ先が長いです…。