无法在KERAS中序列化[0 1 2 ... 63] DL问题

发布于 2025-01-23 06:25:09 字数 525 浏览 0 评论 0原文

我正在尝试使用KERAS创建我的神经网络,但是一旦我尝试将模型保存为“ .h5”文件,就存在问题。我正在使用keras

问题:以下问题:

TypeError:无法序列化[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 23 24 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 47 49 49 50 51 52 53 54 55 55 57 57 58 59 60 61 62 63]到JSON。无法识别的类型< class 'tensorflow.python.framework.ops.egertensor'>。

与问题相关的类是: patchencoder_class

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

酸甜透明夹心 2025-01-30 06:25:09

问题来自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')

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')
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文