Özel bir keras katmanı (bir VQVAE modeli için bir kod kitabı) oluşturmak istiyorum.) Eğitim sırasında bir tf.Variable
kullanılmayan kodları yeniden başlatabilmem için her kodun kullanımını izler. Bu yüzden Kod Defteri katmanımı aşağıdaki gibi oluşturdum...
class Codebook(layers.Layer):
def __init__(self, num_codes, code_reset_limit = None, **kwargs):
super().__init__(**kwargs)
self.num_codes = num_codes
self.code_reset_limit = code_reset_limit
if self.code_reset_limit:
self.code_counter = tf.Variable(tf.zeros(num_codes, dtype = tf.int32), trainable = False)
def build(self, input_shape):
self.codes = self.add_weight(name = 'codes',
shape = (self.num_codes, input_shape[-1]),
initializer = 'random_uniform',
trainable = True)
super().build(input_shape)
Sahip olduğum sorun şu ki Layer
sınıf üye değişkeni bulur self.code_counter
ve katmanla birlikte kaydedilen ağırlıklar listesine ekler. Ayrıca bekler bu self.code_counter
ağırlıklar yüklendiğinde mevcut olmak, çıkarım modunda çalıştığımda durum böyle değil. Keras'ın katmanımdaki bir değişkeni izlememesi için nasıl yapabilirim. Bunun devam etmesini ya da bir parçası olmasını istemiyorum. layers.weights
.