keras或tensorflow中CONVS2D层后的CONVSTM2D

keras或tensorflow中CONVS2D层后的CONVSTM2D,tensorflow,keras,tensorflow2.0,Tensorflow,Keras,Tensorflow2.0,过程如下: x(批处理,时间,w,h,c)=>重塑=>(批处理*时间,w,h,c)=>Conv2D=>重塑=>(批处理,时间,w,h,c)=>convlsm2d=> tf.keras.layers.reformate只能重塑非批量大小的部分,我无法从先前重塑的大小(批量*时间,w,h,c)中提取时间 有没有合适的方法来实现这样的模型?你是对的,tf.keras不支持批量维度重塑-如果你需要一个可以这样做的层,并且仍然使用tf.keras只需编写一个自定义层即可 class BatchAwareR

过程如下:
x(批处理,时间,w,h,c)
=>
重塑
=>
(批处理*时间,w,h,c)
=>Conv2D=>重塑=>
(批处理,时间,w,h,c)
=>convlsm2d=>

tf.keras.layers.reformate
只能重塑非批量大小的部分,我无法从先前重塑的大小
(批量*时间,w,h,c)
中提取
时间


有没有合适的方法来实现这样的模型?

你是对的,
tf.keras
不支持批量维度重塑-如果你需要一个可以这样做的层,并且仍然使用
tf.keras
只需编写一个自定义层即可

class BatchAwareReshape(tf.keras.layers.Layer):
定义初始值(自身、形状、**kwargs):
超级()
自身形状=形状
def呼叫(自我,输入):
返回tf.重塑(输入,自形状)
由于知道批处理维度,现在可以在模型内部调用层
BatchAwareReshape(shape=(batch*time,w,h,c))
,它将正常工作