如何在lambda层中使用批处理大小进行for循环?

时间:2019-07-18 03:31:19

标签: python tensorflow keras

我正在尝试使用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

我应该如何定义可以根据实际情况发生变化的动态变量?

0 个答案:

没有答案