一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

如何在TensorFlow2里使用Keras API創(chuàng)建一個(gè)自定義CNN網(wǎng)絡(luò)?

電子工程師 ? 來源:XILINX技術(shù)社區(qū) ? 作者:張超 ? 2021-04-15 11:36 ? 次閱讀

概述

本示例工程中我們會(huì)在 TensorFlow2 下使用 Keras API 創(chuàng)建一個(gè)自定義 CNN 網(wǎng)絡(luò),在 Vitis-AI 1.3 環(huán)境下編譯成 Xilinx DPU 上運(yùn)行的模型文件,并在 Xilinx zynqMP 上部署運(yùn)行。

該示例工程應(yīng)在 Vitis-AI1.3 Docker,vitis-ai-tensorflow2conda 環(huán)境中運(yùn)行。

有關(guān)Mnist手寫數(shù)字?jǐn)?shù)據(jù)集,請(qǐng)參見http://yann.lecun.com/exdb/mnist/。

在該例程中我們會(huì)演示以下的步驟:

使用 TensorFlow2 訓(xùn)練和評(píng)估小型自定義卷積神經(jīng)網(wǎng)絡(luò)

對(duì)浮點(diǎn)模型進(jìn)行量化 (quantization)

對(duì)量化模型進(jìn)行評(píng)估

使用校準(zhǔn)數(shù)據(jù)集對(duì)訓(xùn)練后的模型進(jìn)行微調(diào) (finetuning)

編譯量化和微調(diào)的模型,以創(chuàng)建 .xmodel 文件,準(zhǔn)備在 DPU 加速器 IP 上執(zhí)行在 zynqMP 評(píng)估板上下載并運(yùn)行該模型

代碼說明

可從下面的 github 頁面獲得源碼。

https://github.com/lobster1989/Mnist-classification-Vitis-AI-1.3-TensorFlow2

Python 及 Shell 腳本源碼說明如下:

load_data.py:下載 Mnist 數(shù)據(jù)集;

generate_images.py:從 Keras 在線數(shù)據(jù)集生成本地圖像文件;

train.py:創(chuàng)建和訓(xùn)練用于 Mnist 分類的簡(jiǎn)單 CNN 模型, 經(jīng)過訓(xùn)練的浮點(diǎn)模型將被保存到本地;

quantize.py:使用 VitisQuantizer 量化前一個(gè)步驟保存的浮點(diǎn)模型,量化后的模型將被保存到本地;

eval_quantized.py:評(píng)估量化模型的 accuracy;

finetune.py:利用 Vitis-AI 進(jìn)行模型微調(diào)(僅作演示,后續(xù)編譯部署的為 quantize 步驟保存的模型);

compile_zcu102.sh/compile_zcu104.sh:?jiǎn)?dòng) vai_c_tensorflow2 命令以將量化或微調(diào)的模型編譯為供 DPU 運(yùn)行的 .xmodel 文件。兩個(gè)文件分別對(duì)應(yīng)目標(biāo)為 zcu102 和 zcu104 開發(fā)板;

make_target_zcu102.sh/make_target_zcu104.sh:將.xmodel和圖像復(fù)制到 。/target_zcu10x 文件夾中,準(zhǔn)備好將其復(fù)制到 zcu102/zcu104 評(píng)估板的 SD 卡中。

模型創(chuàng)建/量化/編譯

在運(yùn)行此部分之前,我們應(yīng)在 Vitis-AI docker 環(huán)境下激活 vitis-ai-tensorflow2anaconda 環(huán)境。有關(guān)更多詳細(xì)信息,請(qǐng)參閱最新版本的 UG1414。

(vitis-ai-tensorflow2) Vitis-AI /workspace/myproj/tf2-mnist-end-to-end 》 python train.py

Load Mnist dataset.。

Create custom cnn.。

Model: “mnist_customcnn_model”

_________________________________________________________________

Layer (type) Output Shape Param #

=================================================================

input_1 (InputLayer) [(None, 28, 28, 1)] 0

_________________________________________________________________

conv2d (Conv2D) (None, 26, 26, 32) 320

_________________________________________________________________

max_pooling2d (MaxPooling2D) (None, 13, 13, 32) 0

_________________________________________________________________

conv2d_1 (Conv2D) (None, 11, 11, 64) 18496

_________________________________________________________________

max_pooling2d_1 (MaxPooling2 (None, 5, 5, 64) 0

_________________________________________________________________

conv2d_2 (Conv2D) (None, 3, 3, 64) 36928

_________________________________________________________________

flatten (Flatten) (None, 576) 0

_________________________________________________________________

dense (Dense) (None, 64) 36928

_________________________________________________________________

dense_1 (Dense) (None, 10) 650

=================================================================

Total params: 93,322

Trainable params: 93,322

Non-trainable params: 0

_________________________________________________________________

Fit on dataset.。

Epoch 1/10

782/782 [==============================] - 13s 16ms/step - loss: 0.1843 - accuracy: 0.9427 - val_loss: 0.0701 - val_accuracy: 0.9813

Epoch 2/10

782/782 [==============================] - 5s 7ms/step - loss: 0.0529 - accuracy: 0.9835 - val_loss: 0.0543 - val_accuracy: 0.9855

Epoch 3/10

782/782 [==============================] - 5s 7ms/step - loss: 0.0346 - accuracy: 0.9894 - val_loss: 0.0472 - val_accuracy: 0.9877

Epoch 4/10

782/782 [==============================] - 5s 7ms/step - loss: 0.0252 - accuracy: 0.9929 - val_loss: 0.0463 - val_accuracy: 0.9878

Epoch 5/10

782/782 [==============================] - 5s 7ms/step - loss: 0.0188 - accuracy: 0.9945 - val_loss: 0.0494 - val_accuracy: 0.9896

Epoch 6/10

782/782 [==============================] - 5s 7ms/step - loss: 0.0147 - accuracy: 0.9956 - val_loss: 0.0513 - val_accuracy: 0.9901

Epoch 7/10

782/782 [==============================] - 5s 7ms/step - loss: 0.0121 - accuracy: 0.9966 - val_loss: 0.0452 - val_accuracy: 0.9920

Epoch 8/10

782/782 [==============================] - 5s 7ms/step - loss: 0.0096 - accuracy: 0.9973 - val_loss: 0.0542 - val_accuracy: 0.9906

Epoch 9/10

782/782 [==============================] - 5s 7ms/step - loss: 0.0088 - accuracy: 0.9976 - val_loss: 0.0640 - val_accuracy: 0.9893

Epoch 10/10

782/782 [==============================] - 5s 7ms/step - loss: 0.0073 - accuracy: 0.9978 - val_loss: 0.0709 - val_accuracy: 0.9893

Save trained model to./models/float_model.h5.

Evaluate model on test dataset.。

157/157 [==============================] - 1s 3ms/step - loss: 0.0426 - accuracy: 0.9911

loss: 0.043

acc: 0.991

(vitis-ai-tensorflow2) Vitis-AI /workspace/myproj/tf2-mnist-end-to-end 》 python quantize.py

Load float model.。

Load Mnist dataset.。

Run quantization.。

[INFO] Start CrossLayerEqualization.。.

10/10 [==============================] - 0s 32ms/step

[INFO] CrossLayerEqualization Done.

[INFO] Start Quantize Calibration.。.

157/157 [==============================] - 12s 77ms/step

[INFO] Quantize Calibration Done.

[INFO] Start Generating Quantized Model.。.

[Warning] Skip quantize pos adjustment for layer quant_dense, its quantize pos is [i=None, w=8.0, b=9.0, o=3.0]

[INFO] Generating Quantized Model Done.

Saved quantized model as 。/models/quantized_model.h5

(vitis-ai-tensorflow2) Vitis-AI /workspace/myproj/tf2-mnist-end-to-end 》 python eval_quantized.py

Load quantized model.。

WARNINGNo training configuration found in the save file, so the model was *not* compiled. Compile it manually.

Load Mnist dataset.。

Compile model.。

Evaluate model on test Dataset

157/157 [==============================] - 4s 22ms/step - loss: 0.0417 - accuracy: 0.9913

loss: 0.042

acc: 0.991

(vitis-ai-tensorflow2) Vitis-AI /workspace/myproj/tf2-mnist-end-to-end 》 python finetune.py

Load float model.。

Load Mnist dataset.。

Create quantize training model.。

[INFO] Start CrossLayerEqualization.。.

10/10 [==============================] - 0s 33ms/step

[INFO] CrossLayerEqualization Done.

Compiling model.。

Fit on Dataset.。

Epoch 1/10

782/782 [==============================] - 48s 61ms/step - loss: 0.0077 - accuracy: 0.9978 - val_loss: 0.0738 - val_accuracy: 0.9882

Epoch 2/10

782/782 [==============================] - 39s 50ms/step - loss: 0.0062 - accuracy: 0.9980 - val_loss: 0.0845 - val_accuracy: 0.9888

Epoch 3/10

782/782 [==============================] - 40s 51ms/step - loss: 0.0058 - accuracy: 0.9983 - val_loss: 0.0810 - val_accuracy: 0.9885

Epoch 4/10

782/782 [==============================] - 40s 51ms/step - loss: 0.0061 - accuracy: 0.9982 - val_loss: 0.0744 - val_accuracy: 0.9902

Epoch 5/10

782/782 [==============================] - 40s 51ms/step - loss: 0.0048 - accuracy: 0.9984 - val_loss: 0.0834 - val_accuracy: 0.9911

Epoch 6/10

782/782 [==============================] - 39s 50ms/step - loss: 0.0047 - accuracy: 0.9986 - val_loss: 0.0807 - val_accuracy: 0.9893

Epoch 7/10

782/782 [==============================] - 39s 50ms/step - loss: 0.0039 - accuracy: 0.9987 - val_loss: 0.0894 - val_accuracy: 0.9903

Epoch 8/10

782/782 [==============================] - 39s 50ms/step - loss: 0.0034 - accuracy: 0.9989 - val_loss: 0.0863 - val_accuracy: 0.9904

Epoch 9/10

782/782 [==============================] - 39s 49ms/step - loss: 0.0042 - accuracy: 0.9989 - val_loss: 0.1043 - val_accuracy: 0.9893

Epoch 10/10

782/782 [==============================] - 39s 50ms/step - loss: 0.0044 - accuracy: 0.9986 - val_loss: 0.0994 - val_accuracy: 0.9908

Saved finetuned model as 。/models/finetuned_model.h5

Evaluate model on test Dataset.。

157/157 [==============================] - 1s 7ms/step - loss: 0.0675 - accuracy: 0.9920

loss: 0.068

acc: 0.992

(vitis-ai-tensorflow2) Vitis-AI /workspace/myproj/tf2-mnist-end-to-end 》 bash -x compile_zcu102.sh

+ ARCH=/opt/vitis_ai/compiler/arch/DPUCZDX8G/ZCU102/arch.json

+ OUTDIR=。/compiled_model

+ NET_NAME=customcnn

+ MODEL=。/models/finetuned_model.h5

+ echo -----------------------------------------

-----------------------------------------

+ echo ‘COMPILING MODEL FOR ZCU102.?!?/p>

COMPILING MODEL FOR ZCU102.。

+ echo -----------------------------------------

-----------------------------------------

+ compile

+ tee compile.log

+ vai_c_tensorflow2 --model 。/models/finetuned_model.h5 --arch /opt/vitis_ai/compiler/arch/DPUCZDX8G/ZCU102/arch.json --output_dir 。/compiled_model --net_name customcnn

/opt/vitis_ai/conda/envs/vitis-ai-tensorflow2/lib/python3.7/site-packages/xnnc/translator/tensorflow_translator.py H5pyDeprecationWarning: dataset.value has been deprecated. Use dataset[()] instead.

value = param.get(group).get(ds).value

[INFO] parse raw model :100%|██████████| 10/10 [00:00《00:00, 16871.70it/s]

[INFO] infer shape (NHWC) :100%|██████████| 26/26 [00:00《00:00, 2956.30it/s]

[INFO] generate xmodel :100%|██████████| 26/26 [00:00《00:00, 5561.60it/s]

[INFO] Namespace(inputs_shape=None, layout=‘NHWC’, model_files=[‘。/models/finetuned_model.h5’], model_type=‘tensorflow2’, out_filename=‘。/compiled_model/customcnn_org.xmodel’, proto=None)

[INFO] tensorflow2 model: models/finetuned_model.h5

[OPT] No optimization method available for xir-level optimization.

[INFO] generate xmodel: /workspace/myproj/tf2-mnist-end-to-end/compiled_model/customcnn_org.xmodel

[UNILOG][INFO] The compiler log will be dumped at “/tmp/vitis-ai-user/log/xcompiler-20210325-093926-3120”

[UNILOG][INFO] Target architecture: DPUCZDX8G_ISA0_B4096_MAX_BG2

[UNILOG][INFO] Compile mode: dpu

[UNILOG][INFO] Debug mode: function

[UNILOG][INFO] Target architecture: DPUCZDX8G_ISA0_B4096_MAX_BG2

[UNILOG][INFO] Graph name: mnist_customcnn_model, with op num: 42

[UNILOG][INFO] Begin to compile.。.

[UNILOG][INFO] Total device subgraph number 3, DPU subgraph number 1

[UNILOG][INFO] Compile done.

[UNILOG][INFO] The meta json is saved to “/workspace/myproj/tf2-mnist-end-to-end/。/compiled_model/meta.json”

[UNILOG][INFO] The compiled xmodel is saved to “/workspace/myproj/tf2-mnist-end-to-end/。/compiled_model/customcnn.xmodel”

[UNILOG][INFO] The compiled xmodel‘s md5sum is 764142e83d074ea9470b9eb9d0757f68, and been saved to “/workspace/myproj/tf2-mnist-end-to-end/。/compiled_model/md5sum.txt”

**************************************************

* VITIS_AI Compilation - Xilinx Inc.

**************************************************

+ echo -----------------------------------------

-----------------------------------------

+ echo ’MODEL COMPILED‘

MODEL COMPILED

+ echo -----------------------------------------

-----------------------------------------

(vitis-ai-tensorflow2) Vitis-AI /workspace/myproj/tf2-mnist-end-to-end 》 bash -x make_target_zcu102.sh

+ echo -----------------------------------------

-----------------------------------------

+ echo ’MAKE TARGET ZCU102 STARTED.?!?/p>

MAKE TARGET ZCU102 STARTED.。

+ echo -----------------------------------------

-----------------------------------------

+ TARGET_ZCU102=。/target_zcu102

+ COMPILE_ZCU102=。/compiled_model

+ APP=。/application

+ NET_NAME=customcnn

+ rm -rf 。/target_zcu102

+ mkdir -p 。/target_zcu102/model_dir

+ cp 。/application/app_mt.py 。/target_zcu102

+ echo ’ Copied application to TARGET_ZCU102 folder‘

Copied application to TARGET_ZCU102 folder

+ cp 。/compiled_model/customcnn.xmodel 。/target_zcu102/model_dir/。

+ echo ’ Copied xmodel file(s) to TARGET_ZCU102 folder‘

Copied xmodel file(s) to TARGET_ZCU102 folder

+ mkdir -p 。/target_zcu102/images

+ python generate_images.py --dataset=mnist --image_dir=。/target_zcu102/images --image_format=jpg --max_images=10000

2021-03-25 0934.445257: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudart.so.10.1

Command line options:

--dataset : mnist

--subset : test

--image_dir : 。/target_zcu102/images

--image_list :

--label_list :

--image_format : jpg

--max_images : 10000

+ echo ’ Copied images to TARGET_ZCU102 folder‘

Copied images to TARGET_ZCU102 folder

+ echo -----------------------------------------

-----------------------------------------

+ echo ’MAKE TARGET ZCU102 COMPLETED‘

MAKE TARGET ZCU102 COMPLETED

+ echo -----------------------------------------

-----------------------------------------

在 ZynqMP 評(píng)估板上運(yùn)行

進(jìn)行電路板設(shè)置。

之后,將 target_zcu10x 目錄中的所有文件復(fù)制到 SD 卡。從 SD 卡啟動(dòng) ZCU10x(下面實(shí)例運(yùn)行的是 zcu104),運(yùn)行 app_mt.py。結(jié)果顯示,實(shí)際運(yùn)行模型的精度為 99.13%.

root@xilinx-zcu104-2020_2:~/target_zcu104# python3 app_mt.py --threads 4

Command line options:

--image_dir : images

--threads : 4

--model : model_dir/customcnn.xmodel

Pre-processing 10000 images.。.

Starting 4 threads.。.

Throughput=5622.61 fps, total frames = 10000, time=1.7785 seconds

Correct:9913, Wrong:87, Accuracy:0.9913

原文標(biāo)題:開發(fā)者分享 | Vitis-AI 1.3/TensorFlow2 環(huán)境下使用自定義 CNN 模型進(jìn)行 Mnist 分類

文章出處:【微信公眾號(hào):XILINX技術(shù)社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

責(zé)任編輯:haq

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

    關(guān)注

    2

    文章

    1555

    瀏覽量

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

    關(guān)注

    1

    文章

    3464

    瀏覽量

    49832

原文標(biāo)題:開發(fā)者分享 | Vitis-AI 1.3/TensorFlow2 環(huán)境下使用自定義 CNN 模型進(jìn)行 Mnist 分類

文章出處:【微信號(hào):gh_2d1c7e2d540e,微信公眾號(hào):XILINX開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    MIMXRT1176如何在MBDT中正確實(shí)現(xiàn)自定義LUT?

    我正在嘗試創(chuàng)建自定義 LUT,但不確定如何進(jìn)行。默認(rèn)閃存類型為 ISSI IS25WP064A-JBLE,但我想使用 FM25V02A-GTR。我嘗試用我自己的 LUT 條目修改生成的文件
    發(fā)表于 04-08 07:56

    如何添加自定義單板

    在開發(fā)過程中,用戶有時(shí)需要創(chuàng)建自定義板配置。本節(jié)將通過個(gè)實(shí)例講解用戶如何創(chuàng)建屬于自己的machine,下面以g
    的頭像 發(fā)表于 03-12 14:43 ?421次閱讀

    使用OpenVINO? 2020.4.582將自定義TensorFlow 2模型轉(zhuǎn)換為中間表示 (IR)收到錯(cuò)誤怎么解決?

    轉(zhuǎn)換自定義 TensorFlow 2 模型 mask_rcnn_inception_resnet_v2_1024x1024_coco17 要 IR 使用模型優(yōu)化器命令: 注意上面的
    發(fā)表于 03-07 07:28

    將YOLOv4模型轉(zhuǎn)換為IR的說明,無法將模型轉(zhuǎn)換為TensorFlow2格式怎么解決?

    遵照 將 YOLOv4 模型轉(zhuǎn)換為 IR 的 說明,但無法將模型轉(zhuǎn)換為 TensorFlow2* 格式。 將 YOLOv4 darknet 轉(zhuǎn)換為 Keras 模型時(shí),收到 TypeError: buffer is too small for requested arr
    發(fā)表于 03-07 07:14

    如何將Keras H5模型轉(zhuǎn)換為中間表示 (IR) 格式?

    自定義層 CustomLayer 的模型: import tensorflow as tf from custom_layer import CustomLayer model
    發(fā)表于 03-07 06:11

    使用Python API在OpenVINO?中創(chuàng)建了用于異步推理的自定義代碼,輸出張量的打印結(jié)果會(huì)重復(fù),為什么?

    使用 Python* API 在 OpenVINO? 中創(chuàng)建了用于異步推理的自定義代碼。 遇到輸出張量的打印結(jié)果會(huì)重復(fù)的問題,即使輸入圖像不同。
    發(fā)表于 03-06 07:53

    為什么無法將自定義EfficientDet模型從TensorFlow 2轉(zhuǎn)換為中間表示(IR)?

    自定義 EfficientDet 模型從 TensorFlow* 2 轉(zhuǎn)換 為 IR 時(shí)遇到錯(cuò)誤: [ ERROR ] Exception occurred during running replacer \"REPLACEM
    發(fā)表于 03-05 06:29

    如何快速創(chuàng)建用戶自定義Board和App工程

    概述自HPM_SDKv1.7.0發(fā)布開始,在HPM_ENV中新增了user_template文件夾,以方便用戶快速創(chuàng)建自定義的Board和App工程。user_template是用戶模板工程,用戶
    的頭像 發(fā)表于 02-08 13:38 ?326次閱讀
    如何快速<b class='flag-5'>創(chuàng)建</b>用戶<b class='flag-5'>自定義</b>Board和App工程

    think-cell:自定義think-cell(四)

    定義這些設(shè)置。 在 PowerPoint 幻燈片母版視圖中,創(chuàng)建新的自定義版式。您將復(fù)制與 think-cell 議程幻燈片的所需外觀最匹配的現(xiàn)有自定義布局之
    的頭像 發(fā)表于 01-13 10:37 ?356次閱讀
    think-cell:<b class='flag-5'>自定義</b>think-cell(四)

    think-cell;自定義think-cell()

    本章介紹如何自定義 think-cell,即如何更改默認(rèn)顏色和其他默認(rèn)屬性;這是通過 think-cell 的樣式文件完成的,這些文件將在前四個(gè)部分中進(jìn)行討論。 第五部分 C.5 設(shè)置默認(rèn)議程幻燈片
    的頭像 發(fā)表于 01-08 11:31 ?507次閱讀
    think-cell;<b class='flag-5'>自定義</b>think-cell(<b class='flag-5'>一</b>)

    創(chuàng)建自定義的基于閃存的引導(dǎo)加載程序(BSL)

    電子發(fā)燒友網(wǎng)站提供《創(chuàng)建自定義的基于閃存的引導(dǎo)加載程序(BSL).pdf》資料免費(fèi)下載
    發(fā)表于 09-19 10:50 ?0次下載
    <b class='flag-5'>創(chuàng)建</b><b class='flag-5'>自定義</b>的基于閃存的引導(dǎo)加載程序(BSL)

    如何創(chuàng)建TestStand自定義步驟

    在之前的課程中簡(jiǎn)單地介紹過TestStand自帶的些步驟類型,如測(cè)試、消息彈窗、賦值、標(biāo)簽等等,這些簡(jiǎn)單的步驟從TestStand的插入選版中就可以添加到序列中。那么在使用中如果碰到需要實(shí)現(xiàn)更加靈活、復(fù)雜的功能,使用自帶的些步驟類型可能難以滿足,這時(shí)就需要使用到
    的頭像 發(fā)表于 09-11 14:46 ?1873次閱讀
    如何<b class='flag-5'>創(chuàng)建</b>TestStand<b class='flag-5'>自定義</b>步驟

    keras模型轉(zhuǎn)tensorflow session

    在這篇文章中,我們將討論如何將Keras模型轉(zhuǎn)換為TensorFlow session。 KerasTensorFlow簡(jiǎn)介 Keras
    的頭像 發(fā)表于 07-05 09:36 ?745次閱讀

    何在IDF框架中使用自定義的靜態(tài)庫和動(dòng)態(tài)庫?

    基于商業(yè)需要,我們需要在 ESP-IDF v4.0-rc 這個(gè)版本的IDF中開發(fā)與使用自定義庫,有如下問題請(qǐng)協(xié)助: 1如何利用IDF框架編寫自定義靜態(tài)庫和動(dòng)態(tài)庫? 2何在IDF框架中
    發(fā)表于 06-25 07:57

    TSMaster 自定義 LIN 調(diào)度表編程指導(dǎo)

    TSMaster(v2023.10.7.990)之后的版本中新增了實(shí)現(xiàn)自定義LIN調(diào)度表相關(guān)API。今天重點(diǎn)和大家分享下關(guān)于編程實(shí)現(xiàn)TSMaster自定義LIN調(diào)度表
    的頭像 發(fā)表于 05-11 08:21 ?972次閱讀
    TSMaster <b class='flag-5'>自定義</b> LIN 調(diào)度表編程指導(dǎo)