VAEのエンコーダーを保存して読み込むとエラーが出ます。
SystemError: Exception encountered when calling layer "lambda" (type Lambda).
unknown opcode
Call arguments received:
• inputs=['tf.Tensor(shape=(None, 32), dtype=float32)', 'tf.Tensor(shape=(None, 32), dtype=float32)']
• mask=None
• training=False
試したコード
import tensorflow.keras as keras
import tensorflow.keras.backend as K
from tensorflow.keras.layers import Input, Flatten, Dense, Lambda
from tensorflow.keras.layers import Dropout, Conv2D
latent_dim = 32
def sampling(args):
mean, logvar = args
eps = K.random_normal([K.shape(mean)[0], latent_dim])
return mean + K.exp(logvar/2) * eps
enc_input = Input(shape=(512,512,1))
x = Conv2D(128, 3, padding='same', activation='relu')(enc_input)
x = Dropout(0.3)(x)
x = Conv2D(64, 3, padding='same', strides=2, activation='relu')(x)
x = Dropout(0.3)(x)
x = Conv2D(32, 3, padding='same', activation='relu')(x)
x = Conv2D(16, 3, padding='same', activation='relu')(x)
enc_shape = K.int_shape(x)
x = Flatten()(x)
x = Dense(16)(x)
z_mean = Dense(latent_dim, name='Z-mean')(x)
z_logvar = Dense(latent_dim, name='Z-logvariance')(x)
z = Lambda(sampling, output_shape=(latent_dim,))([z_mean, z_logvar])
encoder = keras.Model(enc_input, z)
encoder.summary()
save the model
encoder.save("modelmodel.h5")
load the model
rebuild = keras.models.load_model("modelmodel.h5")
どこがおかしいのでしょうか?
kerasのバージョンも変えてみましたが、同じでした。
一度コンパイルしてからモデルを保存してみましたが同じでした。
tensorflow 2.8.4, keras 2.8.0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/04/01 07:55
2023/04/13 01:41
2023/04/14 14:15