Размер модели Keras увеличивается после создания новой модели - PullRequest
0 голосов
/ 07 мая 2020

Название говорит само за себя, код игрушки показан ниже:

from pympler import asizeof 
from keras.models import Sequential
from keras.layers import Dense

model_1 = Sequential([
  Dense(1, activation='relu', input_shape=(10,)),
])

print('Model 1 size = ', asizeof.asizeof(model_1))

model_2 = Sequential([
  Dense(1, activation='relu', input_shape=(10,)),
])

print('Model 1 size = ', asizeof.asizeof(model_1))
print('Model 2 size = ', asizeof.asizeof(model_2))

Pympler - это Python профилировщик памяти. Вывод кода:

Model 1 size =  68624
Model 1 size =  92728
Model 2 size =  92728

Желаемый результат:

Model 1 size =  68624
Model 1 size =  68624
Model 2 size =  68624

Python версия: Python 3.6.8

Версия Keras: 2.3.1

Версия Tensorflow: 2.1.0

Я подозреваю, что это ошибка, и я отправлю сообщение о проблеме в их Github, если это действительно ошибка.

1 Ответ

1 голос
/ 07 мая 2020

В документации https://pympler.readthedocs.io/en/latest/library/asizeof.html сказано:

Если все равно True и не указаны позиционные аргументы. размер всех текущих объектов g c, включая модули, глобальные объекты и объекты стека.

Может быть, вы ищете basicsize.

from pympler import asizeof 
import gc
from keras.models import Sequential
from keras.layers import Dense

model_1 = Sequential([
  Dense(1, activation='relu', input_shape=(10,)),
])

gc.collect()
print('Model 1 size = ', asizeof.basicsize(model_1))

gc.collect()
model_2 = Sequential([
  Dense(1, activation='relu', input_shape=(10,)),
])

print('Model 1 size = ', asizeof.basicsize(model_1))

print('Model 2 size = ', asizeof.basicsize(model_2))

Они должны дайте такой же размер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...