Git Product home page Git Product logo

maix_train's Introduction

train_scripts

You can also train on Maixhub.com, just upload your datasets and you will get the result(kmodel and usage code)

Train type

  • Object classification(Mobilenet V1): judge class of image
  • Object detection(YOLO v2): find a recognizable object in the picture

Usage

0. Prepare

  • only support Linux
  • Prepare environment, use CPU or GPU to train At your fist time train, CPU is recommended, just
pip3 install -r requirements.txt

or use aliyun's source if you are in China

pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
  • Download nncase and unzip it to tools/ncc/ncc_v0.1, and the executable path is tools/ncc/ncc_v0.1/ncc
  • python3 train.py init
  • Edit instance/config.py according to your hardware
  • Prepare dataset, in the datasets directory has some example datasets, input size if 224x224 or you just fllow maixhub's conduct

1. Object classification (Mobilenet V1)

python3 train.py -t classifier -z datasets/test_classifier_datasets.zip train

or assign datasets directory

python3 train.py -t classifier -d datasets/test_classifier_datasets train

more command seepython3 train.py -h

and you will see output in the out directory, packed as a zip file

2. Object detection (YOLO V2)

python3 train.py -t detector -z datasets/test_detector_xml_format.zip train

more command seepython3 train.py -h

and you will see output in the out directory, packed as a zip file

Use GPU

Use docker or install tensorflow with GPU in your local environment

Tensorflow's version should >= 2.0, tested on 2.1

Use docker(recommend)

see tensorflow official website (或者可以参考这篇教程)

docker pull neucrack/tensorflow-gpu-py3-jupyterlab

or

docker pull daocloud.io/neucrack/tensorflow-gpu-py3-jupyterlab
  • Test environment
docker run --gpus all -it --rm neucrack/tensorflow-gpu-py3-jupyterlab python -c "import tensorflow as tf; print('-----version:{}, gpu:{}, 1+2={}'.format(tf.__version__, tf.test.is_gpu_available(), tf.add(1, 2).numpy()) );"

if output is-----version:2.1.0, gpu:True, 1+2=3, that's ok(maybe version can > 2.1.0)

  • Create docker container
docker run --gpus all --name jupyterlab-gpu -it -p 8889:8889 -e USER_NAME=$USER -e USER_ID=`id -u $USER` -e GROUP_NAME=`id -gn $USER` -e GROUP_ID=`id -g $USER` -v /home/${USER}:/tf neucrack/tensorflow-gpu-py3-jupyterlab

If used daocloud, image name should be change to daocloud.io/neucrack/tensorflow-gpu-py3-jupyterlab

This will mount your/home/$USER directory to /tf directory of container, the /tf is the root dir of jupyterlab

Stop by docker stop jupyterlab-gpu, start again by docker start jupyterlab-gpu To use sudo command, edit user password by

docker exec -it jupyterlab_gpu /bin/bash
passwd $USER
passwd root
  • use jupyterlab

Open http://127.0.0.1:8889/lab? in browser, input token(see docker start log) and set new password

Use docker stop jupyterlab-gpu to stop server Use docker start jupyterlab-gpu to start service again

Install on local environment

refer to tensorflow official website

License

Apache 2.0, see LICENSE

maix_train's People

Contributors

neutree avatar strfarfar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

maix_train's Issues

关于数据集的尺寸

想知道,数据集的输入尺寸一定是224乘224吗?数据集的输入尺寸能否是任意大小呢?
网络的模型输入是224×224,最后输出在K210开发板上的LCD屏幕上的图像大小也是224×224。能否对网络的部分参数进行修改,使得输入模型的图像尺寸大小和最后输出在LCD屏幕上的图像大小是320×240?

Can't use the resulting m.kmodel file

  • I created the model using the 0/1 example
  • i created a package file based on the face recognition example, replacing the kmodel file
  • I flashed it to my board at 0x300000
  • I tried the face detection example, but with this 0/1 dection model but it freezes indefinitely on the 'kpu.load()' call

Can I retrain the trained model?

I want to retrain using pretrained model. my project is based on object detection.

maix_train/train/detector/weights/ "mobilenet_7_5_224_tf_no_top.h5" Is it enough to replace it with the previous m_best.h5 model?

I actually want to do transfer learning thanks in advance

ValueError: [MAIXPY]kpu: load error:2002, ERR_KMODEL_VERSION: only support kmodel V3/V4 now

使用 https://github.com/sipeed/maix_train 在 linux 下训练 https://github.com/sipeed/maix_train/blob/master/datasets/test_classifier_datasets.zip,并拷贝到板子上运行,出现如下错误:

ValueError: [MAIXPY]kpu: load error:2002, ERR_KMODEL_VERSION: only support kmodel V3/V4 now

使用的是最新的固件 https://dl.sipeed.com/shareURL/MAIX/MaixPy/release/master/maixpy_v0.6.2_72_g22a8555b5

About instance/config.py

I run python3 train.py init first, and then get the directory named instance. Could you please provide a copy of config.py.

[ERROR]: convert to kmodel fail

I used the docker image to run the train code ,and the train process is successful, but the kmode can't be made ,it report error.
The detail is list as :
2022-11-09 08:55:59,493 - [ERROR]: convert to kmodel fail
2022-11-09 08:55:59,493 - [ERROR]: failed: TrainFailReason.ERROR_INTERNAL, convert kmodel fail: output:
b''
error:
b"FailFast:\nCouldn't find a valid ICU package installed on the system. Set the configuration flag System.Globalization.Invariant to true if you want to run with no globalization support.\n\n at System.Environment.FailFast(System.String)\n at System.Globalization.GlobalizationMode.GetGlobalizationInvariantMode()\n at System.Globalization.GlobalizationMode..cctor()\n at System.Globalization.CultureData.CreateCultureWithInvariantData()\n at System.Globalization.CultureData.get_Invariant()\n at System.Globalization.CultureData.GetCultureData(System.String, Boolean)\n at System.Globalization.CultureInfo..ctor(System.String, Boolean)\n at System.Reflection.RuntimeAssembly.GetLocale()\n at System.Reflection.RuntimeAssembly.GetName(Boolean)\n at System.Reflection.Assembly.GetName()\n at System.Diagnostics.Tracing.EventPipeController.GetAppName()\n at System.Diagnostics.Tracing.EventPipeController..ctor()\n at System.Diagnostics.Tracing.EventPipeController.Initialize()\n at System.StartupHookProvider.ProcessStartupHooks()\n"

The solution of model breakpoint continuous training(断点续训,无需重新训练)

Take mobilenet's classification model as an example

Remember to backup!

  1. By default, after your training, there is a m.tflite.h5 file in maix_train/out. Copy it to some place else.
  2. You need to modify lines 121 to 129 in maix_train/train/classifier/__init__.py
  3. Load the model with self.model = tf.keras.models.load_model("Your filepath of *.h5 ")

image


Mobilenet的分类模型测试过可行

记得备份!

  1. 默认情况下,在你训练之后,在 maix_train/out 中有一个 m.tflite.h5 文件。 将其复制到其他地方。
  2. 需要修改maix_train/train/classifier/__init__.py中的121到129行
  3. 使用self.model = tf.keras.models.load_model("Your filepath of *.h5")加载模型

[error] convert to kmodel fail

There is an error in converting kmodel
error code: [ERROR] failed: TrainFailReason.ERROR_INTERNAL, convert kmodel fail: output

Permission denied error

When I trying to train by myself, I encounter the permission denied error.
This is my log:

2021-04-04 14:14:39,944 - [INFO]: progress: 0%, start
2021-04-04 14:14:39,944 - [INFO]: progress: 1%, start train
2021-04-04 14:14:40,788 - [INFO]: no GPU, will use [CPU]
2021-04-04 14:14:41,598 - [INFO]: input_shape: (224, 224, 3)
2021-04-04 14:14:41,885 - [INFO]: load datasets complete, check pass, images num:376, bboxes num:376
2021-04-04 14:14:41,967 - [INFO]: train, labels:['up', 'mid', 'down']
2021-04-04 14:14:41,967 - [DEBUG]: train, datasets dir:/work/si_xuan_yi/maix_train/out/datasets/datasets
2021-04-04 14:14:41,968 - [INFO]: bboxes num: 376, first bbox: [0.30803571 0.13839286]
2021-04-04 14:14:41,997 - [INFO]: bbox accuracy(IOU): 93.09%
2021-04-04 14:14:41,997 - [INFO]: bound boxes: (72.000000,28.00),(73.000000,35.00),(67.000000,31.00),(66.000000,38.00),(65.000000,34.00)
2021-04-04 14:14:41,998 - [INFO]: anchors: [2.25, 0.875, 2.28125, 1.09375, 2.09375, 0.96875, 2.0625, 1.1875, 2.03125, 1.0625]
2021-04-04 14:14:41,998 - [INFO]: w/h ratios: [1.74, 1.91, 2.09, 2.16, 2.57]
2021-04-04 14:14:42,540 - [INFO]: train start
2021-04-04 14:14:42,540 - [INFO]: progress: 1.0%, train start
2021-04-04 14:14:42,556 - [INFO]: epoch 0 start
2021-04-04 14:15:19,458 - [INFO]: epoch 0 end: {'loss': 0.22109940648078918, 'val_loss': 0.10796400904655457, 'lr': 1e-04}
2021-04-04 14:15:19,458 - [INFO]: progress: 49.5%, train epoch end
2021-04-04 14:15:19,529 - [INFO]: epoch 1 start
2021-04-04 14:15:54,535 - [INFO]: epoch 1 end: {'loss': 0.044014301151037216, 'val_loss': 0.08665819466114044, 'lr': 1e-04}
2021-04-04 14:15:54,536 - [INFO]: progress: 98.0%, train epoch end
2021-04-04 14:15:54,610 - [INFO]: train end
2021-04-04 14:15:54,610 - [INFO]: progress: 98.0%, train end
2021-04-04 14:16:05,124 - [INFO]: train ok, now generate report
2021-04-04 14:16:05,124 - [INFO]: generate report image
2021-04-04 14:16:05,279 - [INFO]: generate report image end
2021-04-04 14:16:05,279 - [INFO]: now generate kmodel
2021-04-04 14:16:17,460 - [ERROR]: failed: TrainFailReason.ERROR_INTERNAL, node error:[Errno 13] Permission denied: '/work/si_xuan_yi/maix_train/instance/../tools/ncc/ncc_v0.1/ncc'

Small Objects Detection

I've a balanced dataset of 550 images with two classes, one of the classes has smaller objects than the other one.

Input Size [3x224x224]

When I set the training script using as input size [3x224x224] the performance of the second class is really terrible compared to the first class. But this size model can be deployed correctly in the Maix-II board

image

Input Size [3x416x416]

When I set the input size to [3x416x416] the results for both classes are better compared to the previous ones. However, when I tried to make the inference of this model in the board it crashes, loading the model to the board is successful but inference it seems that the board is running out of memory. Is it possible for the Maix-II board to support that kind of image resolution as input?

image

如何更换目标检测训练网络模型

我发现在源码的以下函数当中制定了yolo的网络模型为MobileNet
yolo = create_yolo(
architecture = "MobileNet",
labels = self.labels,
input_size = self.input_shape[:2],
anchors = self.anchors,
coord_scale=1.0,
class_scale=1.0,
object_scale=5.0,
no_object_scale=1.0,
weights = weights,
strip_size = strip_size
)
另外在以下函数中列出了所有支持的yolo模型:
def create_feature_extractor(architecture, input_size, weights=None, strip_size = 32):
"""
# Args
architecture : str
input_size : int

# Returns
    feature_extractor : BaseFeatureExtractor instance
"""
if architecture == 'Inception3':
    feature_extractor = Inception3Feature(input_size, weights)
elif architecture == 'SqueezeNet':
    feature_extractor = SqueezeNetFeature(input_size, weights)
elif architecture == 'MobileNet':
    feature_extractor = MobileNetFeature(input_size, weights, strip_size = strip_size)
elif architecture == 'Full Yolo':
    feature_extractor = FullYoloFeature(input_size, weights)
elif architecture == 'Tiny Yolo':
    feature_extractor = TinyYoloFeature(input_size, weights)
elif architecture == 'VGG16':
    feature_extractor = VGG16Feature(input_size, weights)
elif architecture == 'ResNet50':
    feature_extractor = ResNet50Feature(input_size, weights)
else:
    raise Exception('Architecture not supported! Only support Full Yolo, Tiny Yolo, MobileNet, SqueezeNet, VGG16, ResNet50, and Inception3 at the moment!')
return feature_extractor

但是当我想尝试修改参数architecture切换其他模型时,报错提示:
ValueError: You are trying to load a weight file containing 54 layers into a model with 25 layers.
我发现在源码train/detector/init.py中,指定了一个weitht权重文件:mobilenet_7_5_224_tf_no_top.h5
def train(self, epochs= 100,
progress_cb=None,
weights=os.path.join(curr_file_dir, "weights", "mobilenet_7_5_224_tf_no_top.h5"),
batch_size = 5,
train_times = 5,
valid_times = 2,
learning_rate=1e-4,
jitter = False,
is_only_detect = False,
save_best_weights_path = "out/best_weights.h5",
save_final_weights_path = "out/final_weights.h5",
):

我想请问下,这个文件mobilenet_7_5_224_tf_no_top.h5,用途是什么,是在网络初始化时指定网络的默认参数吗?如果切换成其他模型,比如tiny yolo,如何指定weith参数才可正常训练。

模型推理结果理解

image

我用解码函数求解模型推理结果得到的如图片所示,请问真么解读这个结果

训练结果不理想,如何调整

我做了一个中文手势数字识别,效果非常不理想。在实际使用中,准确率低到完全无法接受。而且,有几个数字特别强势,比如4/9/8/0。其他数字几乎没有机会。maix_train 提供的训练调整手段非常有限,请指导。谢谢。

使用的时图片分类训练,数据来源这里: https://github.com/tz28/Chinese-number-gestures-recognition

我下载了他们的基础图片包,然后运行他们提供的 data_augmentation.py [程序,最后对图片进行了一些规整,大小调整到224x224,每个数字有1800-2000 张图片。我们没有对instance/config.py做调整。训练结果报告如下:
report

另外在启动训练时看到如下WARNING:

Found 14604 images belonging to 11 classes.
Found 3645 images belonging to 11 classes.
2021-01-19 16:19:47,171 - [INFO]: train data:14604, valid data:3645
WARNING:tensorflow:From /tf/maix_train/train/classifier/init.py:177: Model.fit_generator (from tensorflow.python.keras.engine.training) is deprecated and will be removed in a future version.
Instructions for updating:
Please use Model.fit, which supports generators.
/usr/local/lib/python3.6/dist-packages/keras_preprocessing/image/image_data_generator.py:716: UserWarning: This ImageDataGenerator specifies featurewise_center, but it hasn't been fit on any training data. Fit it first by calling .fit(numpy_data).
warnings.warn('This ImageDataGenerator specifies '
/usr/local/lib/python3.6/dist-packages/keras_preprocessing/image/image_data_generator.py:724: UserWarning: This ImageDataGenerator specifies featurewise_std_normalization, but it hasn't been fit on any training data. Fit it first by calling .fit(numpy_data).
warnings.warn('This ImageDataGenerator specifies '
WARNING:tensorflow:sample_weight modes were coerced from
...
to
['...']
WARNING:tensorflow:sample_weight modes were coerced from
...
to
['...']
Train for 2920 steps, validate for 729 steps

Couldn't find a valid ICU package installed on the system

训练出错,请帮忙看一下。谢谢
Docker,GPU情况如下:

sudo docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi
Mon Jan 18 18:07:24 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.32.03 Driver Version: 460.32.03 CUDA Version: 11.2 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 GeForce GTX 105... Off | 00000000:01:00.0 Off | N/A |
| N/A 47C P8 N/A / N/A | 419MiB / 4040MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
+-----------------------------------------------------------------------------+

错误发生在 convert to kmodel fail

2021-01-18 18:01:02.319213: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1241] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 3229 MB memory) -> physical GPU (device: 0, name: GeForce GTX 1050 Ti, pci bus id: 0000:01:00.0, compute capability: 6.1)
2021-01-18 18:01:02.370916: I tensorflow/core/grappler/optimizers/meta_optimizer.cc:814] Optimization results for grappler item: graph_to_optimize
2021-01-18 18:01:02.370945: I tensorflow/core/grappler/optimizers/meta_optimizer.cc:816] constant_folding: Graph size after: 234 nodes (-137), 370 edges (-137), time = 28.504ms.
2021-01-18 18:01:02.370973: I tensorflow/core/grappler/optimizers/meta_optimizer.cc:816] constant_folding: Graph size after: 234 nodes (0), 370 edges (0), time = 11.414ms.
[ERROR] -6 b'' b"FailFast:\nCouldn't find a valid ICU package installed on the system. Set the configuration flag System.Globalization.Invariant to true if you want to run with no globalization support.\n\n at System.Environment.FailFast(System.String)\n at System.Globalization.GlobalizationMode.GetGlobalizationInvariantMode()\n at System.Globalization.GlobalizationMode..cctor()\n at System.Globalization.CultureData.CreateCultureWithInvariantData()\n at System.Globalization.CultureData.get_Invariant()\n at System.Globalization.CultureData.GetCultureData(System.String, Boolean)\n at System.Globalization.CultureInfo..ctor(System.String, Boolean)\n at System.Reflection.RuntimeAssembly.GetLocale()\n at System.Reflection.RuntimeAssembly.GetName(Boolean)\n at System.Reflection.Assembly.GetName()\n at System.Diagnostics.Tracing.EventPipeController.GetAppName()\n at System.Diagnostics.Tracing.EventPipeController..ctor()\n at System.Diagnostics.Tracing.EventPipeController.Initialize()\n at System.StartupHookProvider.ProcessStartupHooks()\n"
2021-01-18 18:01:04,682 - [ERROR]: convert to kmodel fail
2021-01-18 18:01:04,683 - [ERROR]: failed: TrainFailReason.ERROR_INTERNAL, convert kmodel fail: output:
b''
error:
b"FailFast:\nCouldn't find a valid ICU package installed on the system. Set the configuration flag System.Globalization.Invariant to true if you want to run with no globalization support.\n\n at System.Environment.FailFast(System.String)\n at System.Globalization.GlobalizationMode.GetGlobalizationInvariantMode()\n at System.Globalization.GlobalizationMode..cctor()\n at System.Globalization.CultureData.CreateCultureWithInvariantData()\n at System.Globalization.CultureData.get_Invariant()\n at System.Globalization.CultureData.GetCultureData(System.String, Boolean)\n at System.Globalization.CultureInfo..ctor(System.String, Boolean)\n at System.Reflection.RuntimeAssembly.GetLocale()\n at System.Reflection.RuntimeAssembly.GetName(Boolean)\n at System.Reflection.Assembly.GetName()\n at System.Diagnostics.Tracing.EventPipeController.GetAppName()\n at System.Diagnostics.Tracing.EventPipeController..ctor()\n at System.Diagnostics.Tracing.EventPipeController.Initialize()\n at System.StartupHookProvider.ProcessStartupHooks()\n"

Convert to AWNN online

I trained a custom yoloV2 detector with 2 classes using the tools provided in this repository, but I've to modify the input size of the image to 416x416 to get better results for one of the classes during the training. Then I used the export.py script to convert my file into ONNX, which according to the logs reported it was built successfully, the same script also convert my file from ONNX to NCNN, which and gave me two files (.bin and .param). For some reason when I uploaded my files to the AWNN online converter tool I got the following error. The error is caused because when the input size of the image?

image

Here is a description of what my .param file looks and the structure of the folder I'm trying to upload to the converter.

image

Input            input0                   0 1 input0 0=416 1=416 2=3
Convolution      Conv_0                   1 1 input0 148 0=32 1=3 11=3 2=1 12=1 3=1 13=1 4=1 14=1 15=1 16=1 5=1 6=864
ReLU             LeakyRelu_1              1 1 148 110 0=1.000000e-01
Convolution      Conv_2                   1 1 110 151 0=32 1=3 11=3 2=1 12=1 3=2 13=2 4=1 14=1 15=1 16=1 5=1 6=9216
ReLU             LeakyRelu_3              1 1 151 113 0=1.000000e-01
Convolution      Conv_4                   1 1 113 154 0=64 1=3 11=3 2=1 12=1 3=1 13=1 4=1 14=1 15=1 16=1 5=1 6=18432
ReLU             LeakyRelu_5              1 1 154 116 0=1.000000e-01
Convolution      Conv_6                   1 1 116 157 0=64 1=3 11=3 2=1 12=1 3=2 13=2 4=1 14=1 15=1 16=1 5=1 6=36864
ReLU             LeakyRelu_7              1 1 157 119 0=1.000000e-01
Convolution      Conv_8                   1 1 119 160 0=128 1=3 11=3 2=1 12=1 3=1 13=1 4=1 14=1 15=1 16=1 5=1 6=73728
ReLU             LeakyRelu_9              1 1 160 122 0=1.000000e-01
Convolution      Conv_10                  1 1 122 163 0=128 1=3 11=3 2=1 12=1 3=2 13=2 4=1 14=1 15=1 16=1 5=1 6=147456
ReLU             LeakyRelu_11             1 1 163 125 0=1.000000e-01
Convolution      Conv_12                  1 1 125 166 0=256 1=3 11=3 2=1 12=1 3=1 13=1 4=1 14=1 15=1 16=1 5=1 6=294912
ReLU             LeakyRelu_13             1 1 166 128 0=1.000000e-01
Convolution      Conv_14                  1 1 128 169 0=256 1=3 11=3 2=1 12=1 3=2 13=2 4=1 14=1 15=1 16=1 5=1 6=589824
ReLU             LeakyRelu_15             1 1 169 131 0=1.000000e-01
Convolution      Conv_16                  1 1 131 172 0=512 1=3 11=3 2=1 12=1 3=1 13=1 4=1 14=1 15=1 16=1 5=1 6=1179648
ReLU             LeakyRelu_17             1 1 172 134 0=1.000000e-01	
Convolution      Conv_18                  1 1 134 175 0=512 1=3 11=3 2=1 12=1 3=2 13=2 4=1 14=1 15=1 16=1 5=1 6=2359296
ReLU             LeakyRelu_19             1 1 175 137 0=1.000000e-01
Convolution      Conv_20                  1 1 137 178 0=512 1=3 11=3 2=1 12=1 3=1 13=1 4=1 14=1 15=1 16=1 5=1 6=2359296
ReLU             LeakyRelu_21             1 1 178 140 0=1.000000e-01
Convolution      Conv_22                  1 1 140 181 0=512 1=3 11=3 2=1 12=1 3=1 13=1 4=1 14=1 15=1 16=1 5=1 6=2359296
ReLU             LeakyRelu_23             1 1 181 143 0=1.000000e-01
Convolution      Conv_24                  1 1 143 184 0=512 1=3 11=3 2=1 12=1 3=1 13=1 4=1 14=1 15=1 16=1 5=1 6=2359296
ReLU             LeakyRelu_25             1 1 184 146 0=1.000000e-01
Convolution      Conv_26                  1 1 146 output0 0=35 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=1 6=17920```


.kmodel generated is too large

The .kmodel file ends up being about 2MB, for the maix dock kit I think it needs to be about 500kb due to RAM size. Why does a project designed specifically for this application not bear this in mind? am I Missing something here? I plan to find the section of the code that builds the model and change it to create a less complex model and hence reduce the .kmodel size, but I wouldve thought there would be some sort of easy standardized way to do this. let me know if I am missing something, thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.