无法在 Keras 中将 [ 0 1 2 ... 63] 序列化为 JSON 以解决 DL 问题
Unable to serialize [ 0 1 2 ... 63] to JSON in Keras for DL issues
我正在尝试使用 Keras 创建我的神经网络,但是一旦我尝试将模型保存为“.h5”文件就会出现问题。我正在使用 keras
问题如下:
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'>.
与问题相关的class是:
PatchEncoder_Class
问题来自 tf.range
,这是一个 EagerTensor
。你应该使用 self.positions.numpy()
。这是一个例子:
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')
我正在尝试使用 Keras 创建我的神经网络,但是一旦我尝试将模型保存为“.h5”文件就会出现问题。我正在使用 keras
问题如下:
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'>.
与问题相关的class是: PatchEncoder_Class
问题来自 tf.range
,这是一个 EagerTensor
。你应该使用 self.positions.numpy()
。这是一个例子:
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')