在树莓派上运行CNN模型

我正在进行一个项目,涉及在树莓派3B上进行青光眼检测。我在笔记本电脑上训练了一个大约400MB的”.h5″格式的模型。我尝试使用keras将模型加载到树莓派上。树莓派可以加载其他较小的模型,但加载我的模型时出现了以下错误:

2018-05-15 18:07:04.117054: W tensorflow/core/framework/allocator.cc:101] Allocation of 134217728 exceeds 10% of system memory.2018-05-15 18:07:05.052281: W tensorflow/core/framework/allocator.cc:101] Allocation of 134217728 exceeds 10% of system memory.2018-05-15 18:07:05.513437: W tensorflow/core/framework/allocator.cc:101] Allocation of 134217728 exceeds 10% of system memory.2018-05-15 18:07:06.191609: W tensorflow/core/framework/allocator.cc:101] Allocation of 134217728 exceeds 10% of system memory.Traceback (most recent call last):  File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/client/session.py", line 1322, in _do_call    return fn(*args)  File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/client/session.py", line 1307, in _run_fn    options, feed_dict, fetch_list, target_list, run_metadata)  File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/client/session.py", line 1409, in _call_tf_sessionrun    run_metadata)tensorflow.python.framework.errors_impl.InternalError: Could not allocate ndarrayDuring handling of the above exception, another exception occurred:Traceback (most recent call last):  File "<stdin>", line 1, in <module>  File "/usr/local/lib/python3.5/dist-packages/keras/models.py", line 273, in load_model    topology.load_weights_from_hdf5_group(f['model_weights'], model.layers)  File "/usr/local/lib/python3.5/dist-packages/keras/engine/topology.py", line 3393, in load_weights_from_hdf5_group    K.batch_set_value(weight_value_tuples)  File "/usr/local/lib/python3.5/dist-packages/keras/backend/tensorflow_backend.py", line 2377, in batch_set_value    get_session().run(assign_ops, feed_dict=feed_dict)  File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/client/session.py", line 900, in run    run_metadata_ptr)  File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/client/session.py", line 1135, in _run    feed_dict_tensor, options, run_metadata)  File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/client/session.py", line 1316, in _do_run    run_metadata)  File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/client/session.py", line 1335, in _do_call    raise type(e)(node_def, op, message)tensorflow.python.framework.errors_impl.InternalError: Could not allocate ndarray

任何帮助都将不胜感激。谢谢!


回答:

构建一个足够大的模型,最终它将无法在1GB的树莓派上运行。你已经遇到了这个问题。

你有三个选择:

  1. 构建一个更小的模型,或者
  2. 看看是否有非必要的服务可以关闭(例如,如果你没有使用显示器,可以尝试使用Raspbian的服务器安装版本),或者
  3. 升级到内存更大的设备。例如,Asus Tinker或Oroid-2板,它们与树莓派大小相同,但有2GB的内存。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注