我想在LSTM层之后使用1D-Conv层对16通道400步距信号进行分类。
输入形状包括:
X = (n_samples, n_timesteps, n_features)
其中n_samples=476
,n_timesteps=400
,n_features=16
是信号的样本,时间步长,和特征(或通道)的数量。
y = (n_samples, n_timesteps, 1)
。每个时间步标记为0或1(二进制分类)。
我使用1D-Conv提取时间信息,如下图所示。F=32
和K=8
是过滤器和kernel_size。1D-Conv之后使用1D-MaxPooling。32个单元的LSTM用于信号分类。模型应返回y_pred = (n_samples, n_timesteps, 1)
。
该代码段如下所示:
input_layer = Input(shape=(dataset.n_timestep, dataset.n_feature))
conv1 = Conv1D(filters=32,
kernel_size=8,
strides=1,
activation='relu')(input_layer)
pool1 = MaxPooling1D(pool_size=4)(conv1)
lstm1 = LSTM(32)(pool1)
output_layer = Dense(1, activation='sigmoid')(lstm1)
model = Model(inputs=input_layer, outputs=output_layer)
Run Code Online (Sandbox Code Playgroud)
模型摘要如下所示:
但是,出现以下错误:
ValueError: Error when checking target: expected dense_15 to have 2 dimensions, but got array with shape (476, 400, 1).
Run Code Online (Sandbox Code Playgroud)
我想问题是形状不正确。请让我知道如何解决它。
另一个问题是时间步数。因为input_shape …
我想问:有A
,B
和C
任何二进制数.获得后C = A & B
(&
为AND
运营商),是否有可能恢复A
从B
和C
?
我知道A
通过操作将丢失信息.我们可以形成一个类似的功能B <...> C = A
,以及它的复杂程度如何?
例如:
A = 0011 B = 1010 C = A & B = 0010
的第2位C
是1
,即第2位A
和B
必须1
.但是,其他位缺少要恢复的信息.
先感谢您.