python - 在 keras API 模型中创建 Lambda 层的问题
问题描述
我正在尝试执行此代码,
lyr_in = Input(shape=(400, 400, 3))
# Block 1
lyr = Conv2D(filters=4, kernel_size=(1, 1), padding='same', activation='relu')(lyr_in)
lyr = MaxPooling2D(pool_size=(2, 2), strides=(2, 2))(lyr)
# Block 2
lyr = Conv2D(filters=8, kernel_size=(1, 1), padding='same', activation='relu')(lyr)
lyr = MaxPooling2D(pool_size=(2, 2), strides=(2, 2))(lyr)
# Block 3
lyr = Conv2D(filters=8, kernel_size=(1, 1), padding='same', activation='relu')(lyr)
# Block 4
lyr = Conv2D(filters=16, kernel_size=(1, 1), padding='same', activation='relu')(lyr)
# Block 5
lyr = Conv2D(filters=16, kernel_size=(1, 1), padding='same', activation='relu')(lyr)
lyr = MaxPooling2D(pool_size=(2, 2), strides=(2, 2))(lyr)
# Block 6
lyr = Conv2D(filters=256, kernel_size=(1, 1), padding='same', activation='relu')(lyr)
lyr = MaxPooling2D(pool_size=(2, 2), strides=(2, 2))(lyr)
def custom_layer(tensor):
y = np.zeros((64,400, 400))
for i in range(0, 25):
for j in range(0, 25):
r = 16 * I
h = 0
for m in range(0, 16):
c = 16 * j
for n in range(0, 16):
y[:,r,c] = tensor[:,i,j,h]
c = c + 1
h = h + 1
r = r + 1
return y
lyr_out = Lambda(custom_layer, name="lambda_layer", output_shape=(400,400))(lyr)
#lyr_out = Reshape((400, 400))(lambda_layer)
M1 = Model(lyr_in, lyr_out)
print(M1.summary())
我是 Keras 和 TensorFlow 的初学者,我想通过 lambda 层的自定义层重新排列 Keras 模型中的图像像素,但我接口此波纹管错误;
TypeError: __array__() takes 1 positional argument but 2 were given
我该如何解决它的朋友?非常非常感谢你。
解决方案
推荐阅读
- powershell - Azure 门户中缺少活动订阅
- vuejs2 - 在 vue 中寻找可访问的日期选择器组件
- python - 将数据框名称与变量值 Python 连接起来
- android - 从 JSON 对象和数组中获取数据
- c# - 在 DataGrid WPF 中禁用行选择
- django - Django 进度条按视图更新
- google-cloud-platform - Google Cloud DataPrep 计划正在生成多个 DataFlow 作业
- c - While循环在C中的switch case
- python - 在 Python 中跳过代码行?
- javascript - 除法如何用于查找输入数组中每个值的乘积,除了具有相应索引的值