首页 > 解决方案 > model.save 收到 Not JSON Serializable 错误。张量流1.14.0

问题描述

我试图实现一个简单的架构

def conv_block_A(layer):
    block = tf.keras.layers.Conv2D(filters=128, kernel_size=3, strides=1, padding='same')(layer)
    block = tf.keras.layers.Conv2D(filters=196, kernel_size=3, strides=1, padding='same')(block)
    block = tf.keras.layers.Conv2D(filters=128, kernel_size=3, strides=1, padding='same')(block)
    block = tf.keras.layers.BatchNormalization(momentum=0.8)(block)
    block = tf.keras.layers.LeakyReLU(alpha=0.2)(block)

    return block

def PoolingAndDense(input):
    dense = tf.keras.layers.GlobalAveragePooling2D(data_format='channels_last')(input)
    dense = tf.keras.layers.Dense(units=64)(dense)
    dense = tf.keras.layers.LeakyReLU(alpha=0.2)(dense)
    dense = tf.keras.layers.Dense(units=32)(dense)
    dense = tf.keras.layers.LeakyReLU(alpha=0.2)(dense)
    dense = tf.keras.layers.Dense(units=1)(dense)
    dense = tf.keras.activations.sigmoid(dense)
    return dense


input_shape = input_shape
input_layer = tf.keras.layers.Input(shape=input_shape,dtype="float32")
stem = tf.keras.layers.Conv2D(filters=64, kernel_size=5, strides=1, padding='same')(input_layer)
first_conv_block_output = conv_block_A(stem)
mtss = PoolingAndDense(first_conv_block_output)
Model = tf.keras.Model(inputs=input_layer, outputs=mtss)

但是 model.save 不适用于 tensorflow 1.14 但适用于 1.15 我如何使它适用于 1.14?

标签: pythonnumpytensorflowmachine-learningkeras

解决方案


在浏览了代码中每一行的tensorflow 文档后,我改变了

dense = tf.keras.activations.sigmoid(dense)

tf.keras.layers.Dense(units=1, activation='sigmoid')(dense)

推荐阅读