в настоящее время я пытаюсь обрезать сеть (простой сверточный автоэнкодер) - разумеется, безуспешно.
Прежде всего, источник, на который я ссылаюсь, - это сообщение в блоге:
http://machinethink.net/blog/compressing-deep-neural-nets/< /а>
На первом этапе я просто хочу установить сверточный фильтр на ноль, чтобы он больше не вносил вклад. Что я пробовал до сих пор:
weights = model.get_weights() # weights is a numpy array
weights[2][0] = 0 # e.g. set the first filter of the second Conv2D-layer 0
weights[3][0] = 0 # and the filter's bias, of course
После этого я инициализирую новую модель с этими весами:
newmodel.set_weights(weights)
и позвоните:
newmodel.fit()
Однако после получения весов:
newweights = newmodel.get_weights()
newweights[2][0]
уже не 0.
Это значит, что мой фильтр обновился, хотя по статье этого быть не должно.
Может ли кто-нибудь сказать мне, что я делаю неправильно (или как это сделать правильно)?
Лучший,
Арепо