Я пишу алгоритм сокращения для tf.keras, который просто удаляет самый низкий x процентиль весов из слоя / фильтра. Чтобы сделать это, я попытался установить значение весов, чтобы сократить до нуля. Прочитав другие источники, у меня сложилось впечатление, что это имеет тот же эффект, что и «удаление» веса из сети, но даже если я установлю все веса в сети равными нулю, никакого уменьшения времени вывода не будет замечено.
Если бы я гипотетически установил все веса в слое на ноль, код был бы следующим:
flat_weights = np.array(self.model.layers[layer_index].get_weights()[0]).flatten()
weight_index = 0
for weight in flat_weights:
#if weight < self.delta_percentiles[index]:
flat_weights[weight_index] = 0
weight_index += 1
weights[0] = np.reshape(flat_weights, original_shape)
weights[1] = np.zeros(np.shape(weights[1]))
self.model.layers[index].set_weights(weights)
Теоретически, время вывода модели, сокращенной таким образом, должен уменьшиться, но никаких изменений не найдено. Я правильно обрезаю?