Keras局部连接层的尺寸

2024-10-06 10:34:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用LocallyConnected1D层(而不是Dense)构建一个自动编码器,但是在理解这两个层类型之间的差异时遇到了很多困难,尤其是在输出维度方面。在

model = Sequential()
model.add(Reshape(input_shape=(input_size,), target_shape=(input_size,1))
model.add(LocallyConnected1D(encoded_size, kernel_size)
model.add(LocallyConnected1D(input_size, kernal_size_2, name="decoded_layer"))

这个模型编译得很好,但是当我去训练它的时候。。。在

^{pr2}$

其中x_train和{}分别是形状(60000784)和(10000,784)的numpy数组。我在这一行得到以下错误:

ValueError: Error when checking target: expected decoded_layer to have 3 dimensions, but got array with shape (60000, 784)

进入decoded_layer的张量的形状是不是应该是(60000,encoded_size,1)?在


Tags: addlayer类型targetinputsizemodel差异
1条回答
网友
1楼 · 发布于 2024-10-06 10:34:39

首先,不必将None作为输入形状的第一个维度。Keras自动假设还有另一个输入维度,即样本数。在

其次,LocallyConnected1D需要3D输入。这意味着您的input_shape应该是(int,int)的形式,keras推断出一个形状(None,int,int)

例如:

model = Sequential()
model.add(LocallyConnected1D(64, 3, input_shape=(10,10))) #takes a 10 by 10 array for each sample
model.add(LocallyConnected1D(32, 3))

如果数据的形状不正确,则始终可以使用Reshape()层。假设您的输入是(batch_size,50)的形状,因此每个样本都是50个元素的一维向量:

^{pr2}$

相关问题 更多 >