Игнорирование того факта, что применение to_categorical бессмысленно в моем сценарии. Следующее решает проблему с памятью:
я есть такой массив:
[[0. 1. 1. ... 0. 0. 1.]
[0. 0. 0. ... 0. 0. 1.]
[0. 0. 1. ... 0. 0. 0.]
...
[0. 0. 0. ... 0. 0. 1.]
[0. 0. 0. ... 0. 0. 1.]
[0. 0. 0. ... 1. 0. 1.]]
Я преобразую это так, чтобы уменьшить потребность в памяти:
x_val = x_val.astype(np.int)
в результате чего:
[[0 1 1 ... 0 0 1]
[0 0 0 ... 0 0 1]
[0 0 1 ... 0 0 0]
...
[0 0 0 ... 0 0 1]
[0 0 0 ... 0 0 1]
[0 0 0 ... 1 0 1]]
Тем не менее, когда я делаю это:
x_val = to_categorical(x_val)
Я получил:
in to_categorical
categorical = np.zeros((n, num_classes), dtype=np.float32)
MemoryError
Есть идеи почему? В конечном счете, массив NumPy содержит метки для проблемы двоичной классификации. До сих пор я использовал его какfloat32
как и в Keras ANN, и он работал нормально, и я достиг довольно хорошей производительности. Так действительно ли нужно бежатьto_categorical
?