Модель CNN на Rapberry Pi - PullRequest
0 голосов
/ 16 мая 2018

Я работаю над проектом, который включает обнаружение глаукомы на Raspberry pi 3B. Модель была обучена на моем ноутбуке и составляет около 400 МБ файла ".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 ndarray

During 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

Любая помощь будет оценена. Спасибо!

1 Ответ

0 голосов
/ 16 мая 2018

Постройте достаточно большую модель, и в конечном итоге она не поместится в 1Gb Pi.Вы там.

У вас есть три варианта:

  1. Построить меньшую модель или
  2. Посмотрите, есть ли ненужные услуги, которые вы можете отключить (например, если вы не работаете с монитором, попробуйте установить сервер Raspian), или
  3. Обновите до чего-нибудь с большим объемом оперативной памяти.Например, платы Asus Tinker или Oroid-2, которые имеют такой же размер, что и Pi, но имеют 2 ГБ ОЗУ.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...