Keras - Использование большого количества функций - PullRequest
1 голос
/ 19 октября 2019

Я разрабатываю Keras NN, который предсказывает метку, используя 20 000 функций. Я могу построить сеть, но мне придется использовать системную оперативную память, поскольку модель слишком велика, чтобы поместиться в моем графическом процессоре, а это означает, что для запуска модели на моей машине потребовались дни. В настоящее время ввод 500,20000,1 до выхода 500,1,1

- я использую 5000 узлов в первом полностью подключенном (плотном) слое. Достаточно ли этого для количества функций? Есть ли способ уменьшить размерность, чтобы запустить его на моем графическом процессоре?

1 Ответ

0 голосов
/ 19 октября 2019

Я полагаю, что каждая входная запись имеет размер (20000, 1), и у вас есть 500 записей, которые составляют вашу базу данных?

В этом случае вы можете начать с уменьшения batch_size, но я также предполагаю, что вы имеете в видучто даже вес сети не умещается в памяти GPU. В этом случае единственное (что я знаю), что вы можете сделать, - это уменьшить размерность.

У вас есть 20000 объектов, но маловероятно, что все они важны для выходного значения. С помощью PCA (Анализ основных компонентов) вы можете проверить важность всех ваших параметров, и вы, вероятно, увидите, что только некоторые из них в совокупности будут на 90% или более важны для конечного результата. В этом случае вы можете игнорировать неважные функции и создать сеть, которая прогнозирует выходные данные, основываясь, скажем, только на 1000 (или даже меньше) функциях.

Важное примечание: единственная причина, по которой я могу думать о том, где вы будетенужно много функций, если вы имеете дело с изображением, спектром (вы можете видеть спектр как одномерное изображение), ... В этом случае я рекомендую изучить сверточные нейронные сети. Они не полностью подключены, что устраняет множество настраиваемых параметров, но, вероятно, работает еще лучше.

...