欧美日韩国产成人_日韩网站在线观看_国产精品sss_国内自拍亚洲

登錄注冊
新聞 資訊 金融 知識 財經 理財 科技 金融 經濟 產品 系統 連接 科技 聚焦
首頁 > 金融 > > 正文

專治“煉丹俠”各種不服:1分鐘就能搞個AI應用

2021-03-31 18:31:05來源:互聯網

賈浩楠 金磊 發(fā)自 凹非寺

量子位 報道 | 公眾號 QbitAI

“煉丹俠”們苦當前深度學習框架久矣。

本來,AI框架的初衷是簡化、加速和優(yōu)化開發(fā)流程。但是輪子這么多,有從學界走出的Caffe、有谷歌力推的TensorFlow、Facebook押注的Pytorch….真正用起來省心省力的卻不多。

Caffe不支持分布式,不夠靈活,文檔不夠用,安裝也比較復雜。

而TensorFlow中的循環(huán)和分支寫起來的復雜和痛苦,用過的人都有體會…

框架越發(fā)展,瓶頸越明顯。

這時,卻有一個“框架工具套件”站出來說:

一分鐘內上手AI應用開發(fā)、一小時掌握AI模型與數據集的自由切換。

TinyMS,就是它,MindSpore社區(qū)新開源的深度學習框架開發(fā)工具套件,在技術文檔中,官方明確地說出了前面的話。

那么,TinyMS到底是什么?真能在一分鐘內實現一個AI應用嗎?

TinyMS是什么?

高端的AI開發(fā)方法,往往只需要最簡單的工具套件。

TinyMS,代表了小(Tiny)、靈(Modular)、簡(Simple),當然名字還有另外一個很好理解的角度,那就是“微型”MindSpore。

這是專門為去年同期才開源的AI計算框架MindSpore定制的高級API開發(fā)套件,目的是讓新手用戶能夠更加輕松地上手深度學習,有效地減少用戶在構建、訓練、驗證和推理一個模型過程中的操作次數。

TinyMS工具包主要用PyThon語言編寫,對于開發(fā)者來說,TinyMS“一站式”服務包括了AI應用開發(fā)前期必要的數據準備,中期的模型架構、訓練、編譯工具,以及后端AI模型應用服務。

當然,TinyMS仍然貼心地推出了完整在線課程教學,以AI應用中常見的深度神經網絡ResNet50等等為例,一步步教你如何使用TinyMS實現自己的AI應用。在線課程將以網劇更新的新穎形式,在MindSpore官方B站進行不斷更新,等不及的開發(fā)者已經可以開始“追劇”了!

嗶哩嗶哩【保姆級教程】EP01-最適合小白的深度學習入門課程來了!小程序

課程的最后還設置了一個挑戰(zhàn)賽,針對小白和高手分別設計了不同難度的比賽,任務是復現TinyMS的模型。每個比賽都會設一個一等獎和三個二等獎,對于參賽人員來說,只要跑通網絡就有機會獲得價值三千元的獎品;如果調參的精度是Top1,即可獲得價值一萬元的獎品。感興趣的開發(fā)者可聯系小助手微信:“mindspore0328”報名參賽。

我們接著來看看TinyMS的構成和主要功能模塊。

從任務流程上看,TinyMS的基本架構分為五個部分:數據處理、模型構建、訓練、驗證、部署。

其中數據處理模塊提供常用數據集下載、解壓、加載等操作,同時,為了讓模型有更好的表現,一般還針對原始數據進行數據預處理(增強)操作。

而在模型構建中,除了網絡主體的構建,還包括Loss損失函數、Optimizer優(yōu)化器等定義。

模型構建好后,就進入了訓練的流程,TinyMS在訓練中提供回調函數的定義。即回調操作可以在訓練的各個階段執(zhí)行,可能是在epoch之間,在處理一個batch之后,甚至在滿足某個條件的情況下完全由用戶做主。

這樣一來,用戶可以利用許多創(chuàng)造性的方法來改進訓練和性能,節(jié)省計算資源,并獲知供有關神經網絡內部發(fā)生的事情的結論。

TinyMS中的精度驗證模塊,負責模型精度驗證的流程,其中評價指標metrics可由用戶自己定義。

最后,就是模型部署,serving模塊可以通過搭建服務器,來提供AI模型應用服務,為新手提供快速推理的體驗。

到底好不好用?我們一試便知。

一分鐘實現AI應用?試試看!

俗話說“光說不練假把式”,實踐才能檢驗TinyMS的真本事。

Now!上手體驗一下!

老規(guī)矩,在安裝之前,先來介紹一下環(huán)境需求:

操作系統:Ubuntu 18.04 或 Windows 10。

Python版本:3.7.5。

安裝也是非常的方便,只要“pip一下”就好:

pip install tinyms==0.1.0

此處溫馨提示:若是下載速度太慢,可以試試下面的鏡像哦:

mkdir -pv /root/.pip

&& echo "[global]" >/root/.pip/pip.conf

&& echo "trusted-host=mirrors.aliyun.com" >>/root/.pip/pip.conf

&& echo "index-url=http://mirrors.aliyun.com/pypi/simple/" >>/root/.pip/pip.conf

要是想檢驗一下安裝是否成功,可以跑一下這個小demo:

import tinyms as ts

from tinyms.primitives import tensor_add

x = ts.ones([2, 3])

y = ts.ones([2, 3])

print(tensor_add(x, y))

若出現如下結果,則證明安裝成功。

[[2. 2. 2.]

[2. 2. 2.]]

接下來,是時候展示TinyMS真正的實力了——只要1分鐘,就可以實現圖形分類應用(LeNet5模型)。

先要做工作,是導入模塊(TinyMS中的主要功能模塊):

import json

import tinyms.optimizers as opt

from PIL import Image

from tinyms import context

from tinyms.data import MnistDataset, download_dataset

from tinyms.vision import mnist_transform, ImageViewer

from tinyms.model import Model, lenet5

from tinyms.serving import start_server, predict, list_servables, shutdown, server_started

from tinyms.metrics import Accuracy

from tinyms.losses import SoftmaxCrossEntropyWithLogits

from tinyms.callbacks import ModelCheckpoint, CheckpointConfig, LossMonitor

接下來是構建模型,但聽到這個環(huán)節(jié)不要打怵,并沒有你印象中的那么多代碼,現在只需要短短2行。

因為TinyMS封裝了MindSpore LeNet5模型中的init和construct函數,所以代碼量大幅減少:

# 構建網絡

net = lenet5(class_num=10)

model = Model(net)

構建完模型后,就是下載數據集 (TinyMS自帶數據集):

# 下載數據集

mnist_path = "/root/mnist"

if not os.path.exists(mnist_path):

download_dataset("mnist", "/root")

print("************Download complete*************")

else:

print("************Dataset already exists.**************")

有了模型,有了數據,當然就需要開始“操練”了。

在訓練模型的過程當中,剛才下載的數據集,會被分為訓練集和驗證集。訓練完成后會進行驗證并輸出 Accuracy 指標:

# 創(chuàng)建mnist路徑

ckpt_folder = "

/etc/tinyms/serving/lenet5"

ckpt_path = "

/etc/tinyms/serving/lenet5/lenet5.ckpt"

if not os.path.exists(ckpt_folder):

!mkdir -p

/etc/tinyms/serving/lenet5

else:

print("lenet5 ckpt folder already exists")

# 設置環(huán)境參數

device_target = "CPU"

context.set_context(mode=context.GRAPH_MODE, device_target=device_target)

dataset_sink_mode = False

# 創(chuàng)建數據集

train_dataset = MnistDataset(os.path.join(mnist_path, "train"), shuffle=True)

train_dataset = mnist_transform.apply_ds(train_dataset)

eval_dataset = MnistDataset(os.path.join(mnist_path, "test"), shuffle=True)

eval_dataset = mnist_transform.apply_ds(eval_dataset)

# 設置訓練參數

lr = 0.01

momentum = 0.9

epoch_size = 1

batch_size = 32

# 定義loss函數

net_loss =

SoftmaxCrossEntropyWithLogits(sparse=True, reduction="mean")

# 定義optimizer

net_opt = opt.Momentum(net.trainable_params(), lr, momentum)

net_metrics={"Accuracy": Accuracy()}

model.compile(loss_fn=net_loss, optimizer=net_opt, metrics=net_metrics)

print("************************Start training*************************")

ckpoint_cb = ModelCheckpoint(prefix="checkpoint_lenet", config=CheckpointConfig(save_checkpoint_steps=1875, keep_checkpoint_max=10))

model.train(epoch_size, train_dataset, callbacks=[ckpoint_cb, LossMonitor()],dataset_sink_mode=dataset_sink_mode)

print("************************Finished training*************************")

model.save_checkpoint(ckpt_path)

model.load_checkpoint(ckpt_path)

print("************************Start evaluation*************************")

acc = model.eval(eval_dataset, dataset_sink_mode=dataset_sink_mode)

print("============== Accuracy:{} ==============".format(acc))

為了后續(xù)推理過程的需要,在訓練模型后,需要定義一個lenet5 servable json文件。

該文件定義了servable名稱,模型名稱,模型格式和分類數量:

servable_json = [{"name": "lenet5",

"description": "This servable hosts a lenet5 model predicting numbers",

"model": {

"name": "lenet5",

"format": "ckpt",

"class_num": 10}}]

os.chdir("/etc/tinyms/serving")

json_data = json.dumps(servable_json, indent=4)

with open("servable.json", "w") as json_file:

json_file.write(json_data)

準備工作就緒,現在就要讓“機器”運作起來(啟動服務器):

start_server()

然后在命令行終端,用“scp”或者“wget”來獲取一張圖片作為輸入(一張0~9之間的數字圖片)。

使用list_servables函數檢查當前后端的serving模型:

list_servables()

如果輸出的description字段顯示這是一個lenet5的模型,那就可以順利進入下一步——發(fā)送推理請求。

# 設置圖片路徑和輸出策略(可以在TOP1和TOP5中選擇)

image_path = "/root/7.png"

strategy = "TOP1_CLASS"

# predict(image_path, servable_name, dataset="mnist", strategy="TOP1_CLASS")

# predict方法的四個參數分別是圖片路徑、servable名稱,數據集名稱(默認MNIST)和輸出策略(默認輸出TOP1,可以選擇TOP5)

if server_started() is True:

img_viewer = ImageViewer(Image.open(image_path), image_path)

img_viewer.show()

print(predict(image_path,"lenet5", "mnist", strategy))

else:

print("Server not started")

如果最后你能看到這樣的輸出:

TOP1: 7, score: 0.99934917688369750977

恭喜你,一次成功的推理,就這么簡單、順利地完成了!

Keras、fastai還不夠用嗎?

現在有眾多為深度學習框架量身定做的API,那么,TinyMS存在的獨特意義是什么?

原因之一是,原生框架的API并不能滿足所有用戶/開發(fā)者的需求,所以需要框架擁有更加簡單有效的高階API、低運行開銷、模塊化開發(fā)以及敏捷部署。

之前有針對TF推出的Keras,它確實好上手,但是“大而全”的Keras層層封裝,不夠靈活快速。

還有基于Pytorch的Fastai,深度學習庫項目較輕便,目錄清晰易理解,可以說是“小而美”。但在預置數據集和推理模塊上存在短板。

TinyMS在高階API方面理念與Fastai相近,不同點在于TinyMS提供了常用的MindSpore預置數據集,方便開發(fā)者簡化對數據集的調用,而且提供了Fastai尚未提供的快速部署推理模塊等。

此外,對比Keras,TinyMS在高階API方面會更為簡單抽象,較keras來說復雜度更低,比如提供了只需一行代碼即可完成數據集的預處理,而且在設計中重點考慮到了Keras尚未提供單獨好用的工具庫,以及尚未提供的快速部署推理模塊等。

其二,對于全場景AI計算框架MindSpore來說,高階和中階Python API已經實現了Keras的大部分功能,所以即使要做一套API,也不需要類似Keras再額外封裝一層。

因此TinyMS的重點不是基于底層框架的特點或不足進行進一步優(yōu)化,而是著重提升開發(fā)者對MindSpore的使用體驗,尤其是面向全場景的開發(fā)和部署。

比如,TinyMS主要語言是PyThon,簡單易用,且所有功能都是易于擴展的模塊化設計,能夠覆蓋多種業(yè)務場景。

開源深度學習開發(fā)工具包,包括了數據集處理工具、模型架構、訓練、編譯工具,以及后端AI模型應用服務,為新手提供快速推理的體驗。

由此就能看出TinyMS面向的主要用戶群體為深度學習初學者、其他研究領需要使用深度學習的科研人員、以及深度學習相關業(yè)務應用開發(fā)的企業(yè)人員。

直白的說TinyMS就是深度發(fā)揮MindSpore優(yōu)勢,以實際開發(fā)需求為導向,極致簡化AI上手的復雜度。

TinyMS是一個新生的開源項目,站在Keras、fastai等巨人的肩膀上,雖然在設計理念上有所創(chuàng)新,但依然需要社區(qū)開發(fā)者一起持續(xù)協作,才能達到更好地服務學術界、產業(yè)界和開發(fā)者的深度和廣度。

TinyMS開源社區(qū)中除了TinyMS項目外,還有如下一些項目和活動:

Specification項目:主要用來協作制定面向模型訓練腳本的格式規(guī)范。由于TinyMS提供了較為高階的API抽象,因此誕生了ModelZoo腳本規(guī)范性和標準化的需求,便于高階封裝的持續(xù)迭代;

tinyms-ai.github.io:開源實現的簡單官方網站搭建,基于Github Page;

RustedAI Team:目前只有組織成員可見,RustedAI是TinyMS旨在推動利用Rust語言編寫更多的低運行時開銷的深度學習組件;

社區(qū)活動:不定期組織TinyMS模型拉力賽,以及多種多樣的Meetup活動。

開源“開源運營”

作為TinyMS的作者,MindSpore社區(qū)運營團隊除了為開發(fā)者帶來這一新的開發(fā)項目外,還與開放原子開源基金會合作,即將推出0xCommOps這一新穎的開源項目,準備將本來最沒有開放需求的開源社區(qū)運營也開源出來。分享MindSpore社區(qū)運營團隊這一年創(chuàng)新的全維度運營的理念,同時也號召更多的社區(qū)運營愛好者一起分享其所特有的經驗和教訓。

總之,在深度學習框架這件事上,又有一個實力玩家積極入場服務開發(fā)者。

試一試TinyMS,歡迎把體驗感想告訴我們~

關鍵詞: 專治 煉丹 各種 不服

熱點
39熱文一周熱點
欧美日韩国产成人_日韩网站在线观看_国产精品sss_国内自拍亚洲
欧美丰满嫩嫩电影| 在线日韩av片| 94-欧美-setu| 日本一二三不卡| 成人污视频在线观看| 久久人人97超碰com| 国产真实乱偷精品视频免| 精品国产3级a| 懂色av中文一区二区三区 | 亚洲h精品动漫在线观看| 91麻豆.com| 性久久久久久久久| 日韩一级片网站| 国产成人免费xxxxxxxx| 国产精品久久久久aaaa| 91成人在线观看喷潮| 午夜一区二区三区在线观看| 日韩一区二区三区视频在线 | 国产色综合一区| 一本色道久久综合精品竹菊| 亚洲h动漫在线| 久久久亚洲精品一区二区三区| 国产一区二区中文字幕| 国产精品久久三| 777奇米成人网| 国产成人综合在线播放| 亚洲精品国产精品乱码不99| 欧美一区二区三区白人| 国产精品69久久久久水密桃| 一区二区三区精品| 欧美精品一区二区不卡 | 麻豆国产精品777777在线| 久久精品视频免费| 在线日韩一区二区| 国产精选一区二区三区| 亚洲一区在线播放| 国产日产亚洲精品系列| 在线电影一区二区三区| 成人性生交大片| 免费美女久久99| 亚洲婷婷综合久久一本伊一区| 91精品国产综合久久久久久漫画| 国产91富婆露脸刺激对白| 日韩精品福利网| 亚洲美女视频在线| 久久久久久**毛片大全| 欧美日韩免费电影| 91一区二区三区在线播放| 国内精品免费在线观看| 日韩成人一级大片| 亚洲国产一区视频| 亚洲素人一区二区| 国产精品美女久久久久久久 | 美女网站一区二区| 亚洲精品免费播放| 欧美极品美女视频| 久久久亚洲高清| 日韩一区二区三| 欧美日韩视频在线一区二区| 成人97人人超碰人人99| 九九在线精品视频| 日av在线不卡| 午夜成人免费视频| 亚洲va中文字幕| 亚洲国产精品久久人人爱| 自拍偷拍欧美精品| 亚洲三级在线看| 日韩理论在线观看| 中文字幕亚洲精品在线观看| 国产精品天天摸av网| 国产女人aaa级久久久级| 久久午夜电影网| 国产三级一区二区| 中文字幕欧美三区| 中文字幕视频一区| 亚洲免费色视频| 亚洲国产精品影院| 日本不卡在线视频| 精品亚洲欧美一区| 国产a精品视频| 99精品视频在线观看免费| caoporn国产精品| 色狠狠av一区二区三区| 欧美日韩一区二区三区在线 | 亚洲最大的成人av| 亚洲成人1区2区| 免费人成精品欧美精品| 国产在线看一区| 成人黄页在线观看| 色妹子一区二区| 欧美日韩国产综合视频在线观看 | 欧美亚洲高清一区| 日韩西西人体444www| 久久影音资源网| 国产精品麻豆一区二区| 亚洲女人小视频在线观看| 亚洲最大色网站| 久久国产三级精品| 99国产精品一区| 欧美精品免费视频| 中文子幕无线码一区tr| 亚洲一区二区成人在线观看| 男男视频亚洲欧美| 99re66热这里只有精品3直播| 欧美视频一区二区三区| 精品成人a区在线观看| 亚洲天堂av一区| 国内精品伊人久久久久影院对白| av不卡一区二区三区| 日韩欧美一区中文| 亚洲特黄一级片| 国产呦萝稀缺另类资源| 欧美偷拍一区二区| 久久看人人爽人人| 午夜精品免费在线观看| 国产一区在线视频| 3d动漫精品啪啪| 亚洲精品乱码久久久久久黑人| 久久国产精品区| 欧美亚日韩国产aⅴ精品中极品| 亚洲精品在线观看视频| 午夜精品久久久久久| 成人av小说网| 欧美精品一区二区高清在线观看| 一区二区欧美国产| 懂色av中文一区二区三区| 日韩欧美专区在线| 午夜视频久久久久久| 91在线视频免费观看| 日本一区二区视频在线观看| 免费观看一级欧美片| 1区2区3区欧美| 国产乱码精品一区二区三| 777奇米成人网| 亚洲高清免费视频| 日本道色综合久久| 亚洲欧洲精品一区二区精品久久久| 久久狠狠亚洲综合| 欧美www视频| 美女一区二区在线观看| 欧美一区二区日韩一区二区| 偷拍一区二区三区| 欧美精品日韩一本| 日本最新不卡在线| 欧美成人精品高清在线播放| 日韩黄色在线观看| 日韩欧美亚洲国产精品字幕久久久 | ㊣最新国产の精品bt伙计久久| 国产99久久久精品| 中文字幕不卡在线播放| 国产麻豆精品theporn| 久久久无码精品亚洲日韩按摩| 精品一区二区综合| 26uuu国产一区二区三区| 日韩激情视频网站| 精品国产伦一区二区三区免费| 精品无人区卡一卡二卡三乱码免费卡 | 亚洲天堂成人在线观看| 一本大道综合伊人精品热热| 中文字幕五月欧美| 日本韩国欧美在线| 日韩电影一区二区三区| 91精品视频网| 国产高清精品网站| 综合在线观看色| 在线播放欧美女士性生活| 美日韩黄色大片| 国产精品免费视频一区| 在线亚洲高清视频| 麻豆精品视频在线观看视频| 久久久久久99久久久精品网站| av高清不卡在线| 日韩av一区二区三区四区| 久久影音资源网| 欧洲一区二区三区在线| 久久精品久久综合| 中文字幕一区二区三区在线观看 | 成人ar影院免费观看视频| 亚洲一区二区三区四区在线观看| 91精品国产色综合久久不卡蜜臀 | 午夜精品久久久久影视| 精品少妇一区二区三区在线播放| 成人性视频网站| 日韩高清在线一区| 欧美韩国日本不卡| 欧美综合天天夜夜久久| 久久超碰97人人做人人爱| 中文字幕av一区二区三区免费看| 欧美日韩午夜在线| 国产91对白在线观看九色| 亚洲国产精品久久不卡毛片 | 欧美裸体bbwbbwbbw| 国产福利一区在线观看| 亚洲123区在线观看| 国产精品看片你懂得| 日韩精品一区二区三区视频播放 | 国产日韩视频一区二区三区| 欧美日韩一本到| 91丨porny丨蝌蚪视频| 久久福利视频一区二区|