У меня есть подготовленная keras
модель, которая имеет выход с размером [n, 4000]
(классификация по 4000 классам).
Мне нужно сделать прогноз по данным испытаний (300К наблюдений).
Но когда я вызываю метод model.predict(X_train)
, я получаю run-out memory error
, потому что у меня недостаточно ОЗУ для хранения матрицы с формой (300K , 4000)
.
Следовательно, было бы логично преобразовать выходные данные модели в разреженную матрицу.
Но перенос predict method
в scipy
функцию sparse.csr_matrix
не работает (sparse.csr_matrix(model.predict(X_train))
), поскольку он сначала выделяет пространство в ОЗУ для прогноза, и только затем он преобразуется в разреженную матрицу.
Я также могу сделать прогноз для конкретной партии тестовых данных, а затем преобразовать его, используя forloop
.
Но мне кажется, что это не оптимальный и очень ресурсоемкий способ.
Пожалуйста, дайте мне совет, могут ли быть какие-либо другие способы преобразования вывода модели в разреженную матрицу?