Python 凯拉斯:乘以常数
在Keras中,是否可以通过输入Python 凯拉斯:乘以常数,python,tensorflow,keras,Python,Tensorflow,Keras,在Keras中,是否可以通过输入size(无,无,3)来x*a?例如,输入x和常量a:x(批次,无,无,1024)*a(批次,1) 我在列车中使用输入大小(64,64,3),但测试数据应使用可变输入大小。无法调整测试尺寸以进行公平的图像处理 我尝试Lambda函数(Lambda x:x*a)(seq)。然后,我在代码方面没有问题。然后,我启动model.fit函数,得到错误: ------------->>tensorflow.python.framework.errors_impl
size(无,无,3)
来x*a
?例如,输入x
和常量a:x(批次,无,无,1024)*a(批次,1)
我在列车中使用输入大小(64,64,3)
,但测试数据应使用可变输入大小。无法调整测试尺寸以进行公平的图像处理
我尝试Lambda函数(Lambda x:x*a)(seq)
。然后,我在代码方面没有问题。然后,我启动model.fit函数,得到错误:
------------->>tensorflow.python.framework.errors_impl.InvalidArgumentError: Incompatible shapes: [7,4,4,1024] vs. [7,1].
我不确定这是否正是您想要的,但您可以使用如下隐式广播:
Lambda(Lambda x:x*a[:,None,None,None])
conv5 = Conv2D(1024, 3, activation = 'relu', padding = 'same', kernel_initializer = 'he_normal')(pool4)
conv5 = Conv2D(1024, 3, activation = 'relu', padding = 'same', kernel_initializer = 'he_normal')(conv5)
conv_c = Conv2D(num_classes, 1, activation='softmax')(conv5)
conv_c1 = GlobalAveragePooling2D(name="class_output")(conv_c)
conv_c1_1 = conv_c1[:, 0:1]
conv_c1_2 = conv_c1[:, 1:2]
conv_c1_3 = conv_c1[:, 2:3]
conv5_b = Lambda(lambda x: x * conv_c1_1)(conv5) #conv5:Tensor(shape=(?, 4, 4, 1024))
conv5_h = Lambda(lambda x: x * conv_c1_2)(conv5) #conv_c1_1: Tensor(shape=(?, 1))
conv5_r = Lambda(lambda x: x * conv_c1_3)(conv5)