Ошибка при загрузке tensorflow.js с помощью node.js

Общая идея заключается в том, что PySpark создает столько java-процессов, сколько есть исполнителей, а затем отправляет данные в каждый процесс. Если слишком мало процессов, узкое место памяти происходит в области кучи java.

В вашем случае особая ошибка заключается в том, что RDD, созданный с помощью sc.parallelize([...]), не указывал количество разделов ( аргумент numSlices, см. docs ). И RDD по умолчанию имеет несколько разделов, которые слишком малы (возможно, он состоит из одного раздела).

Чтобы решить эту проблему, просто укажите количество желаемых разделов:

a = sc.parallelize([...], numSlices=1000)   # and likewise for b

. Когда вы указываете большее и большее количество срезов, вы увидите уменьшение размера, указанного в предупреждение. Увеличьте количество срезов, пока не получите больше предупреждающего сообщения. Например, получение

Stage 0 contains a task of very large size (696 KB). The maximum recommended task size is 100 KB

означает, что вам нужно указать больше фрагментов.


Еще один совет, который может быть полезен при решении проблем памяти (но это не связано с предупреждение): по умолчанию память, доступная каждому исполнителю, составляет 1 ГБ или около того. Вы можете указать большие суммы через командную строку, например, с помощью --executor-memory 64G.

1
задан Imran Rashid 13 July 2018 в 19:46
поделиться

1 ответ

Вам необходимо:

npm install @tensorflow/tfjs-node
2
ответ дан Geuis 17 August 2018 в 12:10
поделиться
  • 1
    Это сработало! Не могли бы вы добавить небольшой комментарий о том, что делает эта команда - поскольку она не указана в инструкциях по установке tenorflowjs – Imran Rashid 13 July 2018 в 20:14
  • 2
    Его право там в инструкциях по установке github.com/tensorflow/… – Geuis 13 July 2018 в 20:17
  • 3
    он не упоминает --save – Imran Rashid 13 July 2018 в 20:38
  • 4
    Правильно, вам, вероятно, не нужно, чтобы при установке из существующего пакета.json – Geuis 13 July 2018 в 20:49
  • 5
    // Load the binding: require('@tensorflow/tfjs-node'); // Use '@tensorflow/tfjs-node-gpu' if running with GPU. Прямо там, в комментариях к коду. Вы можете использовать @tensorflow/tfjs-node, или если вы используете GPU с CUDA, вы можете использовать @tensorflow/tfjs-node-gpu - установить approriate. Они взаимоисключающие. – Hawkeye64 9 August 2018 в 13:14
Другие вопросы по тегам:

Похожие вопросы: