Aha! Я нашел подсказку здесь ...
... и изменил его. У меня есть лямбда-слой, который изначально был написан так:
def sampling(args):
z_mean, z_log_sigma = args
epsilon = K.random_normal(shape=((self.batch_size - self.n_lags), self.hid_dim_2), mean=0., stddev=1.)
return z_mean + z_log_sigma * epsilon
zlambda = Lambda(sampling, output_shape=(self.hid_dim_2,))([z_mean, z_log_sigma])
Я переместил shape
в глобальную переменную, и вуаля!
shape_val = ((self.batch_size - self.n_lags), self.hid_dim_2) #Need this to be a global variable, otherwise Recursion Depth Error of death.
def sampling(args):
z_mean, z_log_sigma = args
epsilon = K.random_normal(shape=shape_val, mean=0., stddev=1.)
return z_mean + z_log_sigma * epsilon
zlambda = Lambda(sampling, output_shape=(self.hid_dim_2,))([z_mean, z_log_sigma]) #Saving and loading Lambda layers is weird.