I am trying to create my Neural Network, using Keras, but there are problems once i try to save the model as a ".h5" file. I am using keras
The problem is the following:
TypeError: Unable to serialize [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63] to JSON. Unrecognized type <class 'tensorflow.python.framework.ops.EagerTensor'>.
The class related to the problem is: PatchEncoder_Class
CodePudding user response:
The problem is coming from tf.range
, which is an EagerTensor
. You should use self.positions.numpy()
. Here is an example:
import tensorflow as tf
class SomeLayer(tf.keras.layers.Dense):
def __init__(self, units, **kwargs):
super().__init__(units=units, **kwargs)
self.positions = tf.range(5)
def get_config(self):
config = super().get_config()
config.update({"positions": self.positions.numpy()})
return config
sl = SomeLayer(5)
inputs = tf.keras.layers.Input((1,))
outputs = sl(inputs)
model = tf.keras.Model(inputs, outputs)
model.save('model.h5')