python - 在 Keras 模型中实现 lambda 层
问题描述
我正在尝试从 Keras 模型中实现一个外部 lambda 函数。但是该函数被调用了两次,或者“### x”和“### x_reshape”被打印了两次。如何消除这种情况?
def RA_reshape(x):
print('\n### x ', x)
x_reshape = K.reshape(x, [1, x.shape[1].value, x.shape[2].value, x.shape[3].value])
print('\n### x_reshape ', x_reshape)
return x_reshape
def unet(pretrained_weights = None,input_size = None):
inputs = Input(input_size)
conv1 = Conv2D(64, 3, activation = 'relu', padding = 'same', kernel_initializer = 'he_normal')(inputs)
conv1 = Conv2D(64, 3, activation = 'relu', padding = 'same', kernel_initializer = 'he_normal')(conv1)
RA_0 = Lambda(lambda y: RA_reshape(x=y) )
conv1 = RA_0(conv1)
解决方案
这是 Keras 在内部工作并构建“图形”,它确实调用了两次函数,我们无能为力。
请注意,由于它是一个图表,它不会按照您的需要打印值!它只会打印符号张量。
为了打印数据,您需要创建一个小模型来预测您想要查看的数据。或者您需要启用渴望模式而不使用“预测”,而是手动使用张量调用每一层。
推荐阅读
- swift - 创建一个未完成发布者的捕获/替换错误对应项?
- html - 如何知道设备方向和方向(横向 90° 或 -90° ?)
- apache-spark - 在窗口中选择第一个以删除其余部分
- django - 查询多对多相关字段
- javascript - 使 antd 表格行仅在单击时可见
- c++ - 如何就地构建可选聚合?
- mysql - PhpMyAdmin 通过 SSL 与 MySQL 连接,但没有证书授权
- android-constraintlayout - Constraintlayout中的Flow可以限制View的大小吗?
- cookies - 什么是具有不同于第一方域的域的 HttpOnly cookie?
- javascript - Javascript - 为什么返回一个对象而不先定义它不起作用?