Closed c-vaughan-ai closed 1 year ago
TF Version: 2.10.0 Python Version 3.9.6 CUDA: 11.3 GPU:Nvidia GeForce GTX 1060 SUPER
@Conweezy0220, Code shared is full of indentation errors, please share a colab gist with issue reported or simple stand alone indented code with all dependencies. Thank you!
I met the same issue, and this post had well explained. (https://stackoverflow.com/questions/73981914/tensorflow-attribute-error-method-object-has-no-attribute-from-serialized)
This issue has been automatically marked as stale because it has no recent activity. It will be closed if no further activity occurs. Thank you.
Closing as stale. Please reopen if you'd like to work on this further.
I've run models with Tensorflow and keras before, but when I try to run a new model that has custom metrics I get the error:
Tensorflow Keras Model with customer loss returns error: AttributeError: 'method' object has no attribute '_from_serialized'
This is code I've copied from a video series I'm following along to. I thought maybe I mistyped something so I copied his code from GITHUB and still get the same error. Here is a link: https://www.youtube.com/watch?v=A6mdOEPGM1E&list=PL-wATfeyAMNpEyENTc-tVH5tfLGKtSWPp&index=11&ab_channel=ValerioVelardo-TheSoundofAI
Here is the full code: import os import pickle
from tensorflow.keras import Model from tensorflow.keras.layers import Input, Conv2D, ReLU, BatchNormalization, \ Flatten, Dense, Reshape, Conv2DTranspose, Activation, Lambda from tensorflow.keras import backend as K from tensorflow.keras.optimizers import Adam from tensorflow.keras.losses import MeanSquaredError import numpy as np import tensorflow as tf
tf.compat.v1.disable_eager_execution()
class VAE: """ VAE represents a Deep Convolutional variational autoencoder architecture with mirrored encoder and decoder components. """
if name == "main": autoencoder = VAE( input_shape=(28, 28, 1), conv_filters=(32, 64, 64, 64), conv_kernels=(3, 3, 3, 3), conv_strides=(1, 2, 2, 1), latent_space_dim=2 ) autoencoder.summary()
LEARNING_RATE = 0.0005 BATCH_SIZE = 32 EPOCHS = 100
def load_mnist(): (x_train, y_train), (x_test, y_test) = mnist.load_data()
def train(x_train, learning_rate, batch_size, epochs): autoencoder = VAE( input_shape=(28, 28, 1), conv_filters=(32, 64, 64, 64), conv_kernels=(3, 3, 3, 3), conv_strides=(1, 2, 2, 1), latent_space_dim=2 ) autoencoder.summary() autoencoder.compile(learning_rate) autoencoder.train(x_train, batch_size, epochs) return autoencoder
if name == "main": xtrain, , , = load_mnist() autoencoder = train(x_train[:10000], LEARNING_RATE, BATCH_SIZE, EPOCHS) autoencoder.save("model")
Here is the output: File "c:\users\connor\appdata\local\programs\python\python39\lib\site-packages\spyder_kernels\py3compat.py", line 356, in compat_exec exec(code, globals, locals)
File "c:\python\autoencoder\train.py", line 38, in
autoencoder = train(x_train[:10000], LEARNING_RATE, BATCH_SIZE, EPOCHS)
File "c:\python\autoencoder\train.py", line 31, in train autoencoder.compile(learning_rate)
File "C:\Python\Autoencoder\Variational_Autoencoder.py", line 53, in compile self.model.compile(optimizer=optimizer,
File "C:\Users\Connor\AppData\Roaming\Python\Python39\site-packages\tensorflow\python\trackable\base.py", line 205, in _method_wrapper result = method(self, *args, **kwargs)
File "C:\Users\Connor\AppData\Roaming\Python\Python39\site-packages\keras\engine\training_v1.py", line 477, in compile self._cache_output_metric_attributes(metrics, weighted_metrics)
File "C:\Users\Connor\AppData\Roaming\Python\Python39\site-packages\keras\engine\training_v1.py", line 2010, in _cache_output_metric_attributes training_utils_v1.collect_per_output_metric_info(
File "C:\Users\Connor\AppData\Roaming\Python\Python39\site-packages\keras\engine\training_utils_v1.py", line 1041, in collect_per_output_metric_info metric_fn._from_serialized = from_serialized
AttributeError: 'method' object has no attribute '_from_serialized'