我正在尝试使用keras Lambda层在整个模型的中间重塑数据张量。 Lambda图层输入的形状深度返回None
(一次输入多少帧)。但是,我需要for循环的确切数字。
如果直接使用传递的数字x.shape,则Nonetype
对象不能用作for循环的整数;
如果我将其定义为常量(例如300,这是火车的深度),则当我调用model.fit
时,该数字将与验证集的深度不匹配。
def repacking(x):
#----------------------------get shape from input tensor---------------------------------
(AMOUNT, TARGET_HEIGHT, TARGET_WIDTH, tmp) = x.shape
#----------------------------pack frame one by one---------------------------------------
for i in range(AMOUNT):
...
package_set = tf.reshape(package_set, (AMOUNT, DEPTH, TARGET_HEIGHT, TARGET_WIDTH, 1))
return package_set
我应该如何定义可以根据实际情况发生变化的动态变量?