Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Keras ConvLSTM2D过滤器和输入通道:值错误:输入通道的数量与过滤器的相应尺寸不匹配,7!=1. 我试图在CARAS中建立卷积神经网络,它在中间包含卷积LSTM层(VultSTM2D),用于处理来自视频的灰度图像序列。每个帧形状是(61,61,1),它们的序列一起传递,因此总体输入是(num_movies,num_frames,frame_height,frame_width,1)。卷积层被预先训练以自动编码序列中的图像,所以剩下的就是训练循环LSTM层。当我只有一个过滤器时,网络工作正常。这是网络(除LSTM层之外的所有层都是时间分布的)。网络的目标是在给定当前帧的情况下预测视频中的未来帧(即,在序列中传递,将序列向前移动n帧)。我分别训练了卷积部分(autoencoder;参见下面的代码)来对单个帧进行自动编码,现在我正在尝试添加LSTM来进行序列预测 _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= time_distributed_1 (ZeroPad) (None, 34, 64, 64, 1) 0 _________________________________________________________________ time_distributed_2 (Conv2D) (None, 34, 64, 64, 16) 160 _________________________________________________________________ time_distributed_3 (MaxPool) (None, 34, 32, 32, 16) 0 _________________________________________________________________ time_distributed_4 (Conv2D) (None, 34, 32, 32, 8) 1160 _________________________________________________________________ time_distributed_5 (MaxPool) (None, 34, 16, 16, 8) 0 _________________________________________________________________ time_distributed_6 (Conv2D) (None, 34, 16, 16, 8) 584 _________________________________________________________________ time_distributed_7 (MaxPool) (None, 34, 8, 8, 8) 0 _________________________________________________________________ time_distributed_8 (Conv2D) (None, 34, 8, 8, 8) 584 _________________________________________________________________ time_distributed_9 (MaxPool) (None, 34, 4, 4, 8) 0 _________________________________________________________________ time_distributed_10 (Conv2D) (None, 34, 4, 4, 1) 73 _________________________________________________________________ rnn (ConvLSTM2D) (None, 34, 4, 4, 1) 36 _________________________________________________________________ time_distributed_11 (Conv2D) (None, 34, 4, 4, 4) 40 _________________________________________________________________ time_distributed_12 (UpSample) (None, 34, 8, 8, 4) 0 _________________________________________________________________ time_distributed_13 (Conv2D) (None, 34, 8, 8, 8) 296 _________________________________________________________________ time_distributed_14 (UpSample) (None, 34, 16, 16, 8) 0 _________________________________________________________________ time_distributed_15 (Conv2D) (None, 34, 16, 16, 8) 584 _________________________________________________________________ time_distributed_16 (UpSample) (None, 34, 32, 32, 8) 0 _________________________________________________________________ time_distributed_17 (Conv2D) (None, 34, 32, 32, 16) 1168 _________________________________________________________________ time_distributed_18 (UpSample) (None, 34, 64, 64, 16) 0 _________________________________________________________________ time_distributed_19 (Conv2D) (None, 34, 64, 64, 1) 145 _________________________________________________________________ time_distributed_20 (UpSample) (None, 34, 61, 61, 1) 0 ================================================================= Total params: 4,830 Trainable params: 36 Non-trainable params: 4,794 __________________________________________________________________Keras_Conv Neural Network - Fatal编程技术网

Keras ConvLSTM2D过滤器和输入通道:值错误:输入通道的数量与过滤器的相应尺寸不匹配,7!=1. 我试图在CARAS中建立卷积神经网络,它在中间包含卷积LSTM层(VultSTM2D),用于处理来自视频的灰度图像序列。每个帧形状是(61,61,1),它们的序列一起传递,因此总体输入是(num_movies,num_frames,frame_height,frame_width,1)。卷积层被预先训练以自动编码序列中的图像,所以剩下的就是训练循环LSTM层。当我只有一个过滤器时,网络工作正常。这是网络(除LSTM层之外的所有层都是时间分布的)。网络的目标是在给定当前帧的情况下预测视频中的未来帧(即,在序列中传递,将序列向前移动n帧)。我分别训练了卷积部分(autoencoder;参见下面的代码)来对单个帧进行自动编码,现在我正在尝试添加LSTM来进行序列预测 _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= time_distributed_1 (ZeroPad) (None, 34, 64, 64, 1) 0 _________________________________________________________________ time_distributed_2 (Conv2D) (None, 34, 64, 64, 16) 160 _________________________________________________________________ time_distributed_3 (MaxPool) (None, 34, 32, 32, 16) 0 _________________________________________________________________ time_distributed_4 (Conv2D) (None, 34, 32, 32, 8) 1160 _________________________________________________________________ time_distributed_5 (MaxPool) (None, 34, 16, 16, 8) 0 _________________________________________________________________ time_distributed_6 (Conv2D) (None, 34, 16, 16, 8) 584 _________________________________________________________________ time_distributed_7 (MaxPool) (None, 34, 8, 8, 8) 0 _________________________________________________________________ time_distributed_8 (Conv2D) (None, 34, 8, 8, 8) 584 _________________________________________________________________ time_distributed_9 (MaxPool) (None, 34, 4, 4, 8) 0 _________________________________________________________________ time_distributed_10 (Conv2D) (None, 34, 4, 4, 1) 73 _________________________________________________________________ rnn (ConvLSTM2D) (None, 34, 4, 4, 1) 36 _________________________________________________________________ time_distributed_11 (Conv2D) (None, 34, 4, 4, 4) 40 _________________________________________________________________ time_distributed_12 (UpSample) (None, 34, 8, 8, 4) 0 _________________________________________________________________ time_distributed_13 (Conv2D) (None, 34, 8, 8, 8) 296 _________________________________________________________________ time_distributed_14 (UpSample) (None, 34, 16, 16, 8) 0 _________________________________________________________________ time_distributed_15 (Conv2D) (None, 34, 16, 16, 8) 584 _________________________________________________________________ time_distributed_16 (UpSample) (None, 34, 32, 32, 8) 0 _________________________________________________________________ time_distributed_17 (Conv2D) (None, 34, 32, 32, 16) 1168 _________________________________________________________________ time_distributed_18 (UpSample) (None, 34, 64, 64, 16) 0 _________________________________________________________________ time_distributed_19 (Conv2D) (None, 34, 64, 64, 1) 145 _________________________________________________________________ time_distributed_20 (UpSample) (None, 34, 61, 61, 1) 0 ================================================================= Total params: 4,830 Trainable params: 36 Non-trainable params: 4,794 _________________________________________________________________

Keras ConvLSTM2D过滤器和输入通道:值错误:输入通道的数量与过滤器的相应尺寸不匹配,7!=1. 我试图在CARAS中建立卷积神经网络,它在中间包含卷积LSTM层(VultSTM2D),用于处理来自视频的灰度图像序列。每个帧形状是(61,61,1),它们的序列一起传递,因此总体输入是(num_movies,num_frames,frame_height,frame_width,1)。卷积层被预先训练以自动编码序列中的图像,所以剩下的就是训练循环LSTM层。当我只有一个过滤器时,网络工作正常。这是网络(除LSTM层之外的所有层都是时间分布的)。网络的目标是在给定当前帧的情况下预测视频中的未来帧(即,在序列中传递,将序列向前移动n帧)。我分别训练了卷积部分(autoencoder;参见下面的代码)来对单个帧进行自动编码,现在我正在尝试添加LSTM来进行序列预测 _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= time_distributed_1 (ZeroPad) (None, 34, 64, 64, 1) 0 _________________________________________________________________ time_distributed_2 (Conv2D) (None, 34, 64, 64, 16) 160 _________________________________________________________________ time_distributed_3 (MaxPool) (None, 34, 32, 32, 16) 0 _________________________________________________________________ time_distributed_4 (Conv2D) (None, 34, 32, 32, 8) 1160 _________________________________________________________________ time_distributed_5 (MaxPool) (None, 34, 16, 16, 8) 0 _________________________________________________________________ time_distributed_6 (Conv2D) (None, 34, 16, 16, 8) 584 _________________________________________________________________ time_distributed_7 (MaxPool) (None, 34, 8, 8, 8) 0 _________________________________________________________________ time_distributed_8 (Conv2D) (None, 34, 8, 8, 8) 584 _________________________________________________________________ time_distributed_9 (MaxPool) (None, 34, 4, 4, 8) 0 _________________________________________________________________ time_distributed_10 (Conv2D) (None, 34, 4, 4, 1) 73 _________________________________________________________________ rnn (ConvLSTM2D) (None, 34, 4, 4, 1) 36 _________________________________________________________________ time_distributed_11 (Conv2D) (None, 34, 4, 4, 4) 40 _________________________________________________________________ time_distributed_12 (UpSample) (None, 34, 8, 8, 4) 0 _________________________________________________________________ time_distributed_13 (Conv2D) (None, 34, 8, 8, 8) 296 _________________________________________________________________ time_distributed_14 (UpSample) (None, 34, 16, 16, 8) 0 _________________________________________________________________ time_distributed_15 (Conv2D) (None, 34, 16, 16, 8) 584 _________________________________________________________________ time_distributed_16 (UpSample) (None, 34, 32, 32, 8) 0 _________________________________________________________________ time_distributed_17 (Conv2D) (None, 34, 32, 32, 16) 1168 _________________________________________________________________ time_distributed_18 (UpSample) (None, 34, 64, 64, 16) 0 _________________________________________________________________ time_distributed_19 (Conv2D) (None, 34, 64, 64, 1) 145 _________________________________________________________________ time_distributed_20 (UpSample) (None, 34, 61, 61, 1) 0 ================================================================= Total params: 4,830 Trainable params: 36 Non-trainable params: 4,794 _________________________________________________________________,keras,conv-neural-network,Keras,Conv Neural Network,当ConvLSTM2D层中的过滤器数量为1时,一切都会运行。但是,当我尝试调整CONVLSM2D层中的过滤器数量时,我得到了错误: ValueError:输入通道数与筛选器的相应维度不匹配,7!=1 其中7是我尝试使用的过滤器数量 这里我构建了自动编码器 autoencoder=Sequential() 自动编码器。添加(零填充2D(((2,1),(2,1)),输入_形状=图像_形状))#(61,61,1)-->(64,64,1) 自动编码器.add(Conv2D(16,(3,3),activa

当ConvLSTM2D层中的过滤器数量为1时,一切都会运行。但是,当我尝试调整CONVLSM2D层中的过滤器数量时,我得到了错误:

ValueError:输入通道数与筛选器的相应维度不匹配,7!=1

其中7是我尝试使用的过滤器数量

这里我构建了自动编码器

autoencoder=Sequential()
自动编码器。添加(零填充2D(((2,1),(2,1)),输入_形状=图像_形状))#(61,61,1)-->(64,64,1)
自动编码器.add(Conv2D(16,(3,3),activation='relu',padding='same'))#(64,64,1)-->(64,64,16)
自动编码器.add(MaxPooling2D((2,2),padding='same'))#(64,64,16)-->(32,32,16)
自动编码器.add(Conv2D(8,(3,3),activation='relu',padding='same'))#(32,32,16)-->(32,32,8)
自动编码器.add(MaxPooling2D((2,2),padding='same'))#(32,32,8)-->(16,16,8)
自动编码器.add(Conv2D(8,(3,3),activation='relu',padding='same'))#(16,16,8)-->(16,16,4)
自动编码器.add(MaxPooling2D((2,2),padding='same'))#(16,16,4)-->(4,4,4)
自动编码器.add(Conv2D(8,(3,3),activation='relu',padding='same'))#(16,16,8)-->(16,16,4)
自动编码器.add(MaxPooling2D((2,2),padding='same'))#(16,16,4)-->(4,4,4)
自动编码器.add(Conv2D(1,(3,3),激活='relu',填充='same'))#(4,4,4)-->(4,4,1)
#将低维表示解码回图像
model.add(Conv2D(4,(3,3),activation='relu',padding='same'))#(4,4,1)-->(4,4,4)
自动编码器.添加(上采样2D((2,2))#(4,4,4)->(16,16,4)
自动编码器.add(Conv2D(8,(3,3),activation='relu',padding='same'))#(4,4,1)-->(4,4,4)
自动编码器.添加(上采样2D((2,2))#(4,4,4)->(16,16,4)
自动编码器.add(Conv2D(8,(3,3),activation='relu',padding='same'))#(16,16,4)-->(16,16,8)
自动编码器.添加(上采样2D((2,2))#(16,16,8)->(32,32,8)
自动编码器.add(Conv2D(16,(3,3),activation='relu',padding='same'))#(32,32,8)->(32,32,16)
自动编码器.添加(上采样2D((2,2))#(32,32,16)->(64,64,16)
#希望使用sigmoid作为我们的最终激活函数,以使输出更为精确
自动编码器.add(Conv2D(1,(3,3),activation='sigmoid',padding='same'))#(64,64,16)->(64,64,1)
自动编码器.添加(裁剪2D(((2,1)、(2,1)))#(64,64,1)->(61,61,1)
构建自动编码器后,我将对其进行自动编码任务培训,并将其添加到LSTM层


num_layers=len(autoencoder.layers)
模型=顺序()
对于范围内的i(num_layers//2):
model.add(TimeDistributed(autoencoder.layers[i]))
out\u shape=autoencoder.layers[num\u layers//2-1]。输出\u shape
#卷积LSTM
num_filters=7
核_形=(2,2)
model.add(ConvLSTM2D(filters=num_filters,
内核大小=内核形状,
激活='tanh',
“相同”,
return_sequences=True,
名称(='rnn'))
“简单的”
model.add(TimeDistributed(flatte()))
模型。添加(简单n(rnn_尺寸,
return_sequences=True,
激活='tanh',
名称(='rnn'))
#注意:由于RNN更改了编码部分中最后一个Conv2D层的输出大小,因此我们以某种方式
#将标注映射回下方。这就是下面致密层的作用
添加(时间分布(密集型(out_形状[1]*out_形状[2],激活='relu',名称='ff'))
model.add(时间分布(重塑((out_形状[1],out_形状[2],1)))
'''
对于范围内的i(num\u layers//2,num\u layers):
model.add(TimeDistributed(autoencoder.layers[i]))
#将非重现层设置为不可训练;我们已经把它们训练成自动编码器,所以RNN
#只需要学习如何在低维空间中移动物体
对于model.layers中的图层:
~如果不是(layer.name=='rnn'或layer.name=='ff'):
layer.trainable=错误
当我将过滤器的数量更改为除一个之外的其他数量时,我会立即出现以下错误:

ValueError:输入通道数与过滤器的相应尺寸不匹配,7!=一,

我不明白为什么滤波器的数量必须与输入通道的数量挂钩?我们不能在同一个输入上使用多个过滤器,每个过滤器都有不同的内核吗

我尝试了一些常见的修复方法,比如设置“data\u format=channels\u last”