0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

我訓(xùn)練了一個(gè)模型,讓開(kāi)發(fā)板認(rèn)識(shí)自己

全志在線 ? 來(lái)源:百問(wèn)科技 ? 2023-07-10 09:50 ? 次閱讀

認(rèn)識(shí)自己,是人類的終極問(wèn)題;而讓AI認(rèn)識(shí)自己,則是人工智能覺(jué)醒的第一步。為此,國(guó)內(nèi)知名嵌入式教育專家韋東山老師團(tuán)隊(duì)使用做了個(gè)有趣的事情——讓開(kāi)發(fā)板可以“認(rèn)識(shí)”自己。

c20d1a26-1ca7-11ee-962d-dac502259ad0.pngc22f0cd0-1ca7-11ee-962d-dac502259ad0.png

本文將從數(shù)據(jù)集的標(biāo)注開(kāi)始,進(jìn)行在100ASK_V853-PRO開(kāi)發(fā)板上部署YOLOV5自訓(xùn)練模型的全過(guò)程演示,內(nèi)容包括訓(xùn)練自定義模型、導(dǎo)出模型、轉(zhuǎn)換模型、模型部署......并在最終實(shí)現(xiàn)開(kāi)發(fā)板以自我為目標(biāo)的檢測(cè)功能,下面展示“我看我自己”的展示端側(cè)最終檢驗(yàn)效果圖:

下載數(shù)據(jù)標(biāo)注工具

首先來(lái)到數(shù)據(jù)標(biāo)注工具下載的地方。

c27338ba-1ca7-11ee-962d-dac502259ad0.png

點(diǎn)擊上述紅框下載,下載完成后解壓壓縮包,雙擊打開(kāi)labelImg.exe文件。

c29b5e12-1ca7-11ee-962d-dac502259ad0.png

打開(kāi)后等待運(yùn)行,運(yùn)行完成后會(huì)進(jìn)入如下標(biāo)注工作界面。

c2b6fcda-1ca7-11ee-962d-dac502259ad0.png

關(guān)于LabelImg更多的使用方法,請(qǐng)?jiān)L問(wèn):https://github.com/heartexlabs/labelImg

由于LabelImg會(huì)預(yù)先提供一些類供您使用,需要手動(dòng)刪除這些類,使得您可以標(biāo)注自己的數(shù)據(jù)集。步驟如下所示:

c2d0aba8-1ca7-11ee-962d-dac502259ad0.gif

進(jìn)入LabelImg程序目錄中的data目錄中,打開(kāi)predefined_classes.txt文件,刪除文件中所有預(yù)定義的類后保存并退出即可。

創(chuàng)建數(shù)據(jù)集目錄

在任意工作目錄中創(chuàng)建images文件夾和labels文件夾分別存放圖像數(shù)據(jù)集和標(biāo)注信息。這里我演示僅使用少量圖像樣本進(jìn)行標(biāo)注,在實(shí)際項(xiàng)目中需要采集足夠的圖像進(jìn)行標(biāo)注才拿滿足模型的準(zhǔn)確率和精度。

例如我在100ask-yolov5-image目錄中創(chuàng)建有images文件夾和labels文件夾,如下所示,創(chuàng)建images文件,存放圖像數(shù)據(jù)集,創(chuàng)建labels文件夾,該文件夾用于后續(xù)存放標(biāo)注數(shù)據(jù)。

c32118ea-1ca7-11ee-962d-dac502259ad0.gif

標(biāo)注圖像

打開(kāi)LabelImg軟件后,使用軟件打開(kāi)數(shù)據(jù)集圖像文件夾,如下所示:

c384a20c-1ca7-11ee-962d-dac502259ad0.gif

打開(kāi)后,修改輸出label的文件夾為我們創(chuàng)建的數(shù)據(jù)集目錄下的labels文件夾

c3bdb880-1ca7-11ee-962d-dac502259ad0.gif

下面我演示標(biāo)注過(guò)程,以百問(wèn)網(wǎng)的開(kāi)發(fā)板為例,標(biāo)注三塊開(kāi)發(fā)板,當(dāng)你點(diǎn)擊Save后即表示標(biāo)注完成,標(biāo)注完成后后會(huì)在labels目錄下生成classes.txt(類別)和圖像中標(biāo)注的類別即位置信息。

c4420428-1ca7-11ee-962d-dac502259ad0.png

經(jīng)過(guò)標(biāo)注大量的圖像后,labels文件夾如下圖所示:

c45aaa3c-1ca7-11ee-962d-dac502259ad0.gif

劃分訓(xùn)練集和驗(yàn)證集

在模型訓(xùn)練中,需要有訓(xùn)練集和驗(yàn)證集??梢院?jiǎn)單理解為網(wǎng)絡(luò)使用訓(xùn)練集去訓(xùn)練,訓(xùn)練出來(lái)的網(wǎng)絡(luò)使用驗(yàn)證集驗(yàn)證。在總數(shù)據(jù)集中訓(xùn)練集通常應(yīng)占80%,驗(yàn)證集應(yīng)占20%。所以將我們標(biāo)注的數(shù)據(jù)集按比例進(jìn)行分配。

在yolov5-6.0項(xiàng)目目錄下創(chuàng)建100ask文件夾(該文件夾名可自定義),在100ask文件夾中創(chuàng)建train文件夾(存放訓(xùn)練集)和創(chuàng)建val文件夾(存放驗(yàn)證集)。

c4c55e0e-1ca7-11ee-962d-dac502259ad0.gif

在train文件夾中創(chuàng)建images文件夾和labels文件夾。其中images文件夾存放總數(shù)據(jù)集的80%的圖像文件,labels文件夾存放與images中的文件對(duì)應(yīng)的標(biāo)注文件。

c32118ea-1ca7-11ee-962d-dac502259ad0.gif

在val文件夾中創(chuàng)建images文件夾和labels文件夾。其中images文件夾存放總數(shù)據(jù)集的20%的圖像文件,labels文件夾存放與images中的文件對(duì)應(yīng)的標(biāo)注文件。

c4c55e0e-1ca7-11ee-962d-dac502259ad0.gif

創(chuàng)建數(shù)據(jù)集配置文件

進(jìn)入yolov5-6.0data目錄下,創(chuàng)建data.yaml,文件內(nèi)容如下所示:

 train: 100ask	rainimages # train images
 val: 100askvalimages # val images
 
 nc: 3 # number of classes
 names: ['T113', 'K510', 'V853'] # class names
c57eb264-1ca7-11ee-962d-dac502259ad0.gif

創(chuàng)建模型配置文件

進(jìn)入models目錄下,拷貝yolov5s.yaml文件,粘貼并models目錄下重命名為100ask_my-model.yaml,例如:

c5b439d4-1ca7-11ee-962d-dac502259ad0.gif

修改100ask_my-model.yaml中類的數(shù)目為自己訓(xùn)練模型的類數(shù)目。

c2632394-1ca7-11ee-962d-dac502259ad0.png

修改訓(xùn)練函數(shù)

打開(kāi)yolov5-6.0項(xiàng)目文件夾中的train.py,修改數(shù)據(jù)配置文件路徑,如下圖紅框所示:

printf("hel parser.add_argument('--cfg', type=str, default='models/100ask_my-model.yaml', help='model.yaml path')
 parser.add_argument('--data', type=str, default=ROOT / 'data/data.yaml', help='dataset.yaml path')lo world!");

訓(xùn)練模型

在conda終端的激活yolov5環(huán)境,激活后進(jìn)入yolov5-6.0項(xiàng)目文件夾。執(zhí)行python train.py,如下圖所示:

c629e9fe-1ca7-11ee-962d-dac502259ad0.png

程序默認(rèn)迭代300次,等待訓(xùn)練完成...

c6541f58-1ca7-11ee-962d-dac502259ad0.png

訓(xùn)練完成后結(jié)果會(huì)保存在runs rain目錄下最新一次的訓(xùn)練結(jié)果,如上圖所示,此次訓(xùn)練的最好模型和最后訓(xùn)練的模型保存在以下目錄中

 runs	rainexp7weights

驗(yàn)證模型

修改val.py函數(shù),修改如下

  parser.add_argument('--data', type=str, default=ROOT / 'data/data.yaml', help='dataset.yaml path')
  parser.add_argument('--weights', nargs='+', type=str, default=ROOT / 'runs/train/exp7/weights/best.pt', help='model.pt path(s)')
c682f35a-1ca7-11ee-962d-dac502259ad0.png

修改models文件夾下的yolo.py

 class Model(nn.Module):
  def __init__(self, cfg='100ask_my-model.yaml', ch=3, nc=None, anchors=None): # model, input channels, number of classes
c6a15afc-1ca7-11ee-962d-dac502259ad0.png

打開(kāi)conda終端輸入python val.py

c6d23c80-1ca7-11ee-962d-dac502259ad0.png

執(zhí)行完成后的結(jié)果保存在runsvalexp文件下。

c6f64904-1ca7-11ee-962d-dac502259ad0.gif

預(yù)測(cè)圖像

在data目錄中新建100ask-images文件夾存放待檢測(cè)的圖像和視頻文件。

修改detect.py函數(shù)中,模型的路徑與檢測(cè)圖像路徑。

 parser.add_argument('--weights', nargs='+', type=str, default=ROOT / 'runs/train/exp7/weights/best.pt', help='model path(s)')
 parser.add_argument('--source', type=str, default=ROOT / 'data/100ask-images', help='file/dir/URL/glob, 0 for webcam')
c80f3576-1ca7-11ee-962d-dac502259ad0.png

檢測(cè)效果如下圖所示:

c82ff450-1ca7-11ee-962d-dac502259ad0.jpg

導(dǎo)出ONNX模型

修改export.py函數(shù)

 parser.add_argument('--data', type=str, default=ROOT / 'data/data.yaml', help='dataset.yaml path')
 parser.add_argument('--weights', type=str, default=ROOT / 'runs/train/exp7/weights/best.pt', help='weights path')
c874ca62-1ca7-11ee-962d-dac502259ad0.png

在conda終端輸入:

printf("hello world!"); python export.py --include onnx --dynamic
c8a835dc-1ca7-11ee-962d-dac502259ad0.png

導(dǎo)出的模型會(huì)與輸入的模型位于同一路徑下,假設(shè)我輸入的模型位于:runs rainexp7weights

c8d2985e-1ca7-11ee-962d-dac502259ad0.png

簡(jiǎn)化模型

簡(jiǎn)化模型前需要用到onnxruntime依賴包,輸入以下命令安裝:

 pip install onnxruntime==1.13.1 -i https://pypi.doubanio.com/simple/

簡(jiǎn)化命令如下:

python -m onnxsim <輸入模型> <輸出模型> --input-shape <輸入圖像尺寸>

例如輸入模型路徑為runs/train/exp7/weights/best.onnx,輸出模型路徑為runs/train/exp7/weights/best-sim.onnx,輸入圖像尺寸固定為640x640。

 python -m onnxsim runs/train/exp7/weights/best.onnx runs/train/exp7/weights/best-sim.onnx --input-shape 1,3,640,640
c9045d26-1ca7-11ee-962d-dac502259ad0.png

查看模型

可以看到輸入已經(jīng)固定為640x640,可看到模型有 4 個(gè)輸出節(jié)點(diǎn),其中 ouput 節(jié)點(diǎn)為后處理解析后的節(jié)點(diǎn);在實(shí)際測(cè)試的過(guò)程中,發(fā)現(xiàn) NPU 量化操作后對(duì)后處理的運(yùn)算非常不友好,輸出數(shù)據(jù)偏差較大,所以我們可以將后處理部分放在 CPU 運(yùn)行;因此在導(dǎo)入模型時(shí)保留 350,498, 646 三個(gè)后處理解析前的輸出節(jié)點(diǎn)即可。

c93eeebe-1ca7-11ee-962d-dac502259ad0.png

驗(yàn)證模型

模型需要修改為簡(jiǎn)化后的模型路徑。

新建文件夾存放固定的輸入圖像尺寸。假設(shè)上述中我設(shè)置輸入圖像尺寸為640x640,那么此時(shí)我在data目錄下新建100ask-images-640文件夾存放640x640的圖像作為待測(cè)數(shù)據(jù)。

修改detect.py函數(shù)

  parser.add_argument('--weights', nargs='+', type=str, default=ROOT / 'runs/train/exp7/weights/best-sim.onnx', help='model path(s)')
  parser.add_argument('--source', type=str, default=ROOT / 'data/100ask-images-640', help='file/dir/URL/glob, 0 for webcam')
c987014a-1ca7-11ee-962d-dac502259ad0.png

在conda終端輸入:

python detect.py
c9ac09c2-1ca7-11ee-962d-dac502259ad0.png

通過(guò)輸出信息可知:檢測(cè)結(jié)果存儲(chǔ)在runsdetectexp6,檢測(cè)結(jié)果如下:

c9ccf902-1ca7-11ee-962d-dac502259ad0.jpg

轉(zhuǎn)換模型

將簡(jiǎn)化后的best-sim.onnx模型傳入配置到NPU模型轉(zhuǎn)換工具的虛擬機(jī)中,創(chuàng)建模型工具目錄,包含模型文件,量化文件夾data(存放量化圖片),dataset.txt文件(存放量化圖片的路徑)。

 buntu@ubuntu2004:~/100ask-yolov5-test$ tree
 .
 ├── best-sim.onnx
 ├── data
 │  └── test01.jpg
 └── dataset.txt
 
 1 directory, 5 files
ca10279a-1ca7-11ee-962d-dac502259ad0.gif

導(dǎo)入模型前需要知道我們要保留的輸出節(jié)點(diǎn),由之前查看到我們輸出的三個(gè)后處理節(jié)點(diǎn)為:350,498,646 。

 pegasus import onnx --model best-sim.onnx --output-data best-sim.data --output-model best-sim.json --outputs "350 498 646"

導(dǎo)入生成兩個(gè)文件,分別是是 yolov5s-sim.data 和 yolov5s-sim.json 文件,兩個(gè)文件是 YOLO V5 網(wǎng)絡(luò)對(duì)應(yīng)的芯原內(nèi)部格式表示文件,data 文件儲(chǔ)存權(quán)重,cfg 文件儲(chǔ)存模型。

ca3e6b28-1ca7-11ee-962d-dac502259ad0.gif

YML 文件對(duì)網(wǎng)絡(luò)的輸入和輸出的超參數(shù)進(jìn)行描述以及配置,這些參數(shù)包括,輸入輸出 tensor 的形狀,歸一化系數(shù) (均值,零點(diǎn)),圖像格式,tensor 的輸出格式,后處理方式等等

 pegasus generate inputmeta --model best-sim.json --input-meta-output best-sim_inputmeta.yml
cab0274a-1ca7-11ee-962d-dac502259ad0.gif

 pegasus generate postprocess-file --model best-sim.json --postprocess-file-output best-sim_postprocess_file.yml
cae1bdfa-1ca7-11ee-962d-dac502259ad0.gif

修改 best-sim_inputmeta.yml 文件中的的 scale 參數(shù)為 0.0039216(1/255),目的是對(duì)輸入 tensor 進(jìn)行歸一化,和網(wǎng)絡(luò)進(jìn)行訓(xùn)練的時(shí)候是對(duì)應(yīng)的。

 vi best-sim_inputmeta.yml

修改過(guò)程如下圖所示:

cb1dc57a-1ca7-11ee-962d-dac502259ad0.gif

生成量化表文件,使用非對(duì)稱量化,uint8,修改 --batch-size 參數(shù)為你的 dataset.txt 里提供的圖片數(shù)量。如果原始網(wǎng)絡(luò)使用固定的batch_size,請(qǐng)使用固定的batch_size,如果原始網(wǎng)絡(luò)使用可變batch_size,請(qǐng)將此參數(shù)設(shè)置為1。

 pegasus quantize --model best-sim.json --model-data best-sim.data --batch-size 1 --device CPU --with-input-meta best-sim_inputmeta.yml --rebuild --model-quantize best-sim.quantize --quantizer asymmetric_affine --qtype uint8
cb4f58ce-1ca7-11ee-962d-dac502259ad0.gif

利用前文的量化表執(zhí)行預(yù)推理,得到推理 tensor

 pegasus inference --model best-sim.json --model-data best-sim.data --batch-size 1 --dtype quantized --model-quantize best-sim.quantize --device CPU --with-input-meta best-sim_inputmeta.yml --postprocess-file best-sim_postprocess_file.yml
cb99805c-1ca7-11ee-962d-dac502259ad0.gif

輸出的模型可以在 ovxilb/100ask-best-sim_nbg_unify 文件夾中找到network_binary.nb模型文件。

 pegasus export ovxlib --model best-sim.json --model-data best-sim.data --dtype quantized --model-quantize best-sim.quantize --batch-size 1 --save-fused-graph --target-ide-project 'linux64' --with-input-meta best-sim_inputmeta.yml --output-path ovxilb/100ask-best-sim/100ask-simprj --pack-nbg-unify --postprocess-file best-sim_postprocessmeta.yml --optimize "VIP9000PICO_PID0XEE" --viv-sdk ${VIV_SDK}
cc5d6d5a-1ca7-11ee-962d-dac502259ad0.gif

可以進(jìn)入下圖所示目錄中將network_binary.nb模型文件拷貝出來(lái)備用。

cd559a7a-1ca7-11ee-962d-dac502259ad0.gif

端側(cè)部署

這里引用上一篇《100ASK-V853-PRO開(kāi)發(fā)板支持yolov5模型部署》我們編寫的yolov5端側(cè)部署程序,這里進(jìn)入端側(cè)部署程序文件夾中拷貝一份新程序進(jìn)行修改。主要修改vnn_post_process.cpp程序。

修改draw_objects函數(shù)中的類名,這里我訓(xùn)練的模型的類別分別是T113、K510、V853。

cde6fc4a-1ca7-11ee-962d-dac502259ad0.png

類別名稱需要yolov5-6.0項(xiàng)目data目錄下data.yaml對(duì)應(yīng)。

ce16cf24-1ca7-11ee-962d-dac502259ad0.png

修改generate_proposals函數(shù)中的類類別數(shù)量為您類別數(shù)量。假設(shè)我訓(xùn)練的類別總共有T113、K510、V853,這3個(gè)類別,修改為3即可。

ce3334a2-1ca7-11ee-962d-dac502259ad0.png

修改后的文件如下所示:

ce4d1c1e-1ca7-11ee-962d-dac502259ad0.gif

 book@100ask:~/workspaces/tina-v853-open$ source build/envsetup.sh
 ...
 book@100ask:~/workspaces/tina-v853-open$ lunch
 ...1
 ...

進(jìn)入menuconfig,輸入

 make menuconfig

進(jìn)入如下目錄中,選中yolov5-100ask配置,

> 100ask
 > NPU
 <*> yolov5-100ask......................................... yolov5-100ask demo
ced452ec-1ca7-11ee-962d-dac502259ad0.png

編譯并生成鏡像

 book@100ask:~/workspaces/tina-v853-open$ make
 ...
 book@100ask:~/workspaces/tina-v853-open$ pack

編譯完成后使用全志燒寫工具燒錄鏡像。

在主機(jī)端傳入640*640的圖像文件和network_binary.nb模型文件

 book@100ask:~/workspaces/testImg$ adb push test-100ask.jpg /mnt/UDISK
 test-100ask.jpg: 1 file pushed. 0.6 MB/s (51039 bytes in 0.078s)
 book@100ask:~/workspaces/testImg$ adb push network_binary.nb /mnt/UDISK
 network_binary.nb: 1 file pushed. 0.7 MB/s (7409024 bytes in 10.043s)

開(kāi)發(fā)板端進(jìn)入/mnt/UDISK/目錄下

 root@TinaLinux:/# cd /mnt/UDISK/
 root@TinaLinux:/mnt/UDISK# ls
 lost+found     network_binary.nb overlay      test-100ask.jpg

運(yùn)行yolov5檢測(cè)程序

 yolov5-100ask network_binary.nb test-100ask.jpg
cf0b5fbc-1ca7-11ee-962d-dac502259ad0.png

執(zhí)行完成后會(huì)在當(dāng)前目錄下生成輸出文件yolov5_out.jpg

 root@TinaLinux:/mnt/UDISK# ls
 lost+found     overlay      yolov5_out.jpg
 network_binary.nb test-100ask.jpg

在主機(jī)端拉取開(kāi)發(fā)板端的輸出圖像yolov5_out.jpg

 book@100ask:~/workspaces/testImg$ adb pull /mnt/UDISK/yolov5_out.jpg ./
 /mnt/UDISK/yolov5_out.jpg: 1 file pulled. 0.8 MB/s (98685 bytes in 0.116s)

檢測(cè)效果圖

c20d1a26-1ca7-11ee-962d-dac502259ad0.png

本文內(nèi)容均轉(zhuǎn)載自百問(wèn)科技

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5059

    文章

    18973

    瀏覽量

    302039
  • 程序
    +關(guān)注

    關(guān)注

    116

    文章

    3756

    瀏覽量

    80754
  • 開(kāi)發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    4896

    瀏覽量

    97059
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3112

    瀏覽量

    48660
  • 數(shù)據(jù)集
    +關(guān)注

    關(guān)注

    4

    文章

    1200

    瀏覽量

    24619

原文標(biāo)題:我訓(xùn)練了一個(gè)模型,讓開(kāi)發(fā)板認(rèn)識(shí)自己

文章出處:【微信號(hào):gh_79acfa3aa3e3,微信公眾號(hào):全志在線】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    【基于存內(nèi)計(jì)算芯片開(kāi)發(fā)板驗(yàn)證語(yǔ)音識(shí)別】訓(xùn)練手冊(cè)

    本教程展現(xiàn)語(yǔ)音識(shí)別算法在WTM2101開(kāi)發(fā)板上從訓(xùn)練到部署的全流程,包括實(shí)驗(yàn)環(huán)境搭建,語(yǔ)音數(shù)據(jù)集以及算法模型轉(zhuǎn)換燒錄。
    的頭像 發(fā)表于 05-16 14:49 ?590次閱讀
    【基于存內(nèi)計(jì)算芯片<b class='flag-5'>開(kāi)發(fā)板</b>驗(yàn)證語(yǔ)音識(shí)別】<b class='flag-5'>訓(xùn)練</b>手冊(cè)

    問(wèn)下大家,如果自己想在開(kāi)發(fā)板開(kāi)發(fā)個(gè)

    問(wèn)下大家,如果自己想在開(kāi)發(fā)板開(kāi)發(fā)個(gè)類似gps
    發(fā)表于 07-30 11:02

    Pytorch模型訓(xùn)練實(shí)用PDF教程【中文】

    及優(yōu)化器,從而給大家?guī)?lái)清晰的機(jī)器學(xué)習(xí)結(jié)構(gòu)。通過(guò)本教程,希望能夠給大家?guī)?lái)個(gè)清晰的模型訓(xùn)練結(jié)構(gòu)。當(dāng)模型
    發(fā)表于 12-21 09:18

    K210開(kāi)發(fā)板部署到開(kāi)發(fā)板上后,會(huì)提示“Out of Memory”無(wú)法完成檢測(cè)任務(wù)如何解決?

    您好,想問(wèn)下嘉楠官方有沒(méi)有出套基于K210開(kāi)發(fā)板進(jìn)行目標(biāo)檢測(cè)的訓(xùn)練流程呢?
    發(fā)表于 09-14 08:35

    讓開(kāi)發(fā)板上的LED燈閃爍起來(lái)吧

    這節(jié)課給大家講下如何讓開(kāi)發(fā)板上網(wǎng)絡(luò)編號(hào)為 D4 LED 燈閃爍起來(lái),先看開(kāi)發(fā)板上關(guān)于 LED 的原理圖
    發(fā)表于 11-11 17:17 ?13次下載

    如何自己制作個(gè)單片機(jī)開(kāi)發(fā)板

    之所以做這個(gè)的初衷是應(yīng)為自己買的51 開(kāi)發(fā)板已經(jīng)下載不了程序了,所以想做一個(gè)下載程序的最小系統(tǒng),可是做到后來(lái),就覺(jué)著這么大塊萬(wàn)用只是做
    發(fā)表于 09-02 16:43 ?14次下載
    如何<b class='flag-5'>自己</b>制作<b class='flag-5'>一</b><b class='flag-5'>個(gè)</b>單片機(jī)<b class='flag-5'>開(kāi)發(fā)板</b>

    谷歌訓(xùn)練開(kāi)發(fā)個(gè)萬(wàn)億參數(shù)的AI語(yǔ)言模型

    參數(shù)是機(jī)器學(xué)習(xí)算法的關(guān)鍵。它們是從歷史訓(xùn)練數(shù)據(jù)中學(xué)到的模型部分。般來(lái)說(shuō),在語(yǔ)言領(lǐng)域,參數(shù)的數(shù)量和復(fù)雜性之間的相關(guān)性非常好。例如,OpenAI的GPT-3是有史以來(lái)
    的頭像 發(fā)表于 01-18 16:19 ?1804次閱讀

    利用ImageNet訓(xùn)練了個(gè)能降噪、超分和去雨的圖像預(yù)訓(xùn)練模型

    在上篇文章介紹過(guò)了,因?yàn)門ransformer本身是用于NLP領(lǐng)域的,輸入應(yīng)該是個(gè)序列,因此這篇的論文做法和ViT[3]樣,首先需要把feature map分塊,每個(gè)patch則視為
    的頭像 發(fā)表于 03-03 16:05 ?4328次閱讀
    利用ImageNet<b class='flag-5'>訓(xùn)練了</b><b class='flag-5'>一</b><b class='flag-5'>個(gè)</b>能降噪、超分和去雨的圖像預(yù)<b class='flag-5'>訓(xùn)練</b><b class='flag-5'>模型</b>

    如何制作自己的單片機(jī)開(kāi)發(fā)板的講解

    制作自己的單片機(jī)開(kāi)發(fā)板方法詳細(xì)說(shuō)明。
    發(fā)表于 04-25 15:55 ?37次下載

    如何在U-Boot中添加自已的開(kāi)發(fā)板

    uboot移植不需要從零開(kāi)始將uboot移植到使用的開(kāi)發(fā)板上。因?yàn)榘雽?dǎo)體廠商通常都會(huì)自己一個(gè)開(kāi)發(fā)板, 將uboot移植到他們自己的原廠
    的頭像 發(fā)表于 04-24 10:48 ?909次閱讀
    如何在U-Boot中添加自已的<b class='flag-5'>開(kāi)發(fā)板</b>

    AI愛(ài)克斯開(kāi)發(fā)板上使用OpenVINO加速YOLOv8目標(biāo)檢測(cè)模型

    《在AI愛(ài)克斯開(kāi)發(fā)板上用OpenVINO加速YOLOv8分類模型》介紹了在AI愛(ài)克斯開(kāi)發(fā)板上使用OpenVINO 開(kāi)發(fā)套件部署并測(cè)評(píng)YOLOv8的分類
    的頭像 發(fā)表于 05-26 11:03 ?1161次閱讀
    AI愛(ài)克斯<b class='flag-5'>開(kāi)發(fā)板</b>上使用OpenVINO加速YOLOv8目標(biāo)檢測(cè)<b class='flag-5'>模型</b>

    【開(kāi)源項(xiàng)目】手把手教你用全志XR32芯片DIY個(gè)自己開(kāi)發(fā)板

    項(xiàng)目使用全志官方支持的FreeRTOS系統(tǒng),適配自己做的開(kāi)發(fā)板,代碼全部開(kāi)源;提供程序軟件、芯片資料、硬件參考資料下載,需要的小伙伴可點(diǎn)擊文章末尾【閱讀原文】下載學(xué)習(xí)。項(xiàng)目計(jì)劃?個(gè)
    的頭像 發(fā)表于 05-10 10:04 ?1399次閱讀
    【開(kāi)源項(xiàng)目】手把手教你用全志XR32芯片DIY<b class='flag-5'>一</b><b class='flag-5'>個(gè)</b><b class='flag-5'>自己</b>的<b class='flag-5'>開(kāi)發(fā)板</b>

    簡(jiǎn)單認(rèn)識(shí)通用MCU FRDM開(kāi)發(fā)板

    為了加速通用MCU原型設(shè)計(jì),恩智浦提供了FRDM開(kāi)發(fā)板和功能齊全的評(píng)估套件。FRDM開(kāi)發(fā)板個(gè)低成本、可擴(kuò)展的硬件平臺(tái),配合MCUXpresso Developer Experien
    的頭像 發(fā)表于 02-25 09:43 ?928次閱讀

    如何訓(xùn)練自己的AI大模型

    訓(xùn)練自己的AI大模型個(gè)復(fù)雜且耗時(shí)的過(guò)程,涉及多個(gè)關(guān)鍵步驟。以下是
    的頭像 發(fā)表于 10-23 15:07 ?372次閱讀

    如何訓(xùn)練自己的LLM模型

    訓(xùn)練自己的大型語(yǔ)言模型(LLM)是個(gè)復(fù)雜且資源密集的過(guò)程,涉及到大量的數(shù)據(jù)、計(jì)算資源和專業(yè)知識(shí)。以下是
    的頭像 發(fā)表于 11-08 09:30 ?238次閱讀