python - 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?
解决方案
在浏览了代码中每一行的tensorflow 文档后,我改变了
dense = tf.keras.activations.sigmoid(dense)
至
tf.keras.layers.Dense(units=1, activation='sigmoid')(dense)
推荐阅读
- reactjs - 当 Emotion-React 和 Typescript 一起使用时,Props 和 InnerProps 有什么区别?
- html - Bootstrap 4 在移动设备上隐藏一列
- variables - 如果聚合足够,或者我也应该连接聚合类
- angularjs - 用正则表达式替换 gulp-replace
- google-cloud-platform - GCP:如何在删除部署时保留资源?
- ruby-on-rails - 嵌套表单不断创建新表单而不是覆盖以前的表单
- c# - C# 控制台应用程序随机等待输入
- c - 如何使用 8051 微控制器连接键盘和 LCD
- python - 在 PyQt5 中更改布局的背景颜色
- c++ - C++ 模板类比较