使用conv1D时输入数据和训练数据之间的尺寸不匹配

巴德尔

我尝试使用Conv1D构建我的第一个CNN,因为我处理时间序列数据。我的目标是对1501形状的input_data进行压缩。x_train的形状为(550,1501),我增加了它的尺寸以适合模型。

但是,编译器抱怨:

ValueError:传递形状为(550,1501,1)的目标数组以输出形状为(None,1500,1)的输出,同时用作损失mean_squared_error这种损失期望目标与输出具有相同的形状。

这是代码

import numpy as np
from tensorflow.keras.layers import Input,Dense, Conv1D, MaxPooling1D, UpSampling1D, Flatten, Input
from tensorflow.keras import optimizers, Model
import matplotlib.pyplot as plt
from tensorflow.keras import backend as K

#(1,128,1)
input_data = Input(shape=(1501,1))
fil_ord = 3
# Eecode
encode  = Conv1D(2000,  fil_ord, activation='relu', padding='same')input_data) 
encode = MaxPooling1D( 2 )(encode)
encode = Conv1D(750,   fil_ord, activation='relu', padding='same')(encode)

# Decode

decode  = Conv1D(750,  fil_ord, activation='relu', padding='same')(encode)
decode = UpSampling1D( 2)(decode)
decode = Conv1D(1,   fil_ord, activation='sigmoid', padding='same')(decode)


model = Model(input_data, decode)


model.summary()

from numpy import zeros, newaxis
x_train1=x_train[:,:,None]

batch_size = 128
epochs = 10
# Optimizer
sgd = optimizers.Adam(lr=0.001)

# compile
model.compile(loss='mse', optimizer=sgd)
# train
history = model.fit(x_train1, x_train1, batch_size=batch_size, epochs=epochs, verbose=2,shuffle=True)

model.summary()输出:

在此处输入图片说明

巴拉吉·阿什瓦特(Balraj Ashwath)

误差在于的decode输出尺寸axis=1,即1500与的目标x_train1尺寸不同1501

这是由于发生在此链MAX-池上采样操作:1501 -> 750 -> 1500其中MaxPooling1D忽略尺寸的同时下采样,并输出一个附加元件具有750axis=1不能从上采样与操作回收其中UpSampling1D

因此,目标(x_train1)和预测(decode)输出的形状不同,因此我们无法计算损失。

可以用来解决此问题的两种方法是:

  • 裁剪目标x_train尺寸axis=1以匹配目标尺寸decode,即1500这是执行此操作的一种方法:history = model.fit(x_train1, x_train1[:,:-1,], batch_size=batch_size, ...)
  • decode用(say)填充从中获得的输出0,以匹配的尺寸x_train,即1501一种方法是在以下位置使用ZeroPadding2DdecodeZeroPadding2D(padding=((0,0),(0,1),(0,0)))(decode)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

尝试训练数据时使用pytorch的大小不匹配

来自分类Dev

pytorch输入张量大小错误的尺寸Conv1D

来自分类Dev

使用Conv1D图层时出现ValueError

来自分类Dev

蜡烛 Conv1D 上的负尺寸大小

来自分类Dev

了解PyTorch conv1D的输入形状吗?

来自分类Dev

白化输入数据时模型未训练和负损失

来自分类Dev

类型错误:级别类型不匹配:0.2。将数据拆分为训练、验证和测试集时

来自分类Dev

Keras Conv1D和VGG的问题

来自分类Dev

keras 中不兼容的输入数据错误,尺寸不匹配 ValueError

来自分类Dev

为什么我需要将输入数据重塑为Conv2D的附加尺寸?

来自分类Dev

为什么 Solr 在使用 group.limit 时匹配数据和计数不匹配?

来自分类Dev

使用conv1D“检查输入时出错:预期conv1d_input具有3维,但数组的形状为(213412,36)”

来自分类Dev

Android和HTML页面之间的Webview数据不匹配

来自分类Dev

如何在密集或展平的图层之后应用Conv1D:ValueError:形状(1、1、3)和(1、1)不兼容

来自分类Dev

如何在 keras 中使用 Conv1D 和 Bidirectional LSTM 对每个时间步进行多类分类?

来自分类Dev

使用node-xbee发送数据包时的校验和不匹配错误

来自分类Dev

为什么结构和联合之间的尺寸不匹配?

来自分类Dev

如何在Keras中为Conv1D重塑输入层?

来自分类Dev

JTextArea ArrayList字符串数据和JTextField输入数据不匹配

来自分类Dev

用户输入与文件中的数据不匹配

来自分类Dev

使用日期时“数据条件不匹配SQL”

来自分类Dev

在R中的两个数据帧之间捕获匹配和不匹配的值

来自分类Dev

PCA下数据中非单维尺寸不匹配的原因

来自分类Dev

更改数据表示“ LabelBinarizer ”后尺寸不匹配

来自分类Dev

将Conv1D添加到CNN模型定义时的语法无效

来自分类Dev

Word2vec 和 Conv1D 用于文本分类混淆

来自分类Dev

输入到 1D Conv 层的数据集形状的困难

来自分类Dev

ValueError:Layer conv1d的输入不是符号张量,层的所有输入都应为张量

来自分类Dev

使用Tensorflow输入PASCAL-VOC 2012训练数据和标签的好方法

Related 相关文章

  1. 1

    尝试训练数据时使用pytorch的大小不匹配

  2. 2

    pytorch输入张量大小错误的尺寸Conv1D

  3. 3

    使用Conv1D图层时出现ValueError

  4. 4

    蜡烛 Conv1D 上的负尺寸大小

  5. 5

    了解PyTorch conv1D的输入形状吗?

  6. 6

    白化输入数据时模型未训练和负损失

  7. 7

    类型错误:级别类型不匹配:0.2。将数据拆分为训练、验证和测试集时

  8. 8

    Keras Conv1D和VGG的问题

  9. 9

    keras 中不兼容的输入数据错误,尺寸不匹配 ValueError

  10. 10

    为什么我需要将输入数据重塑为Conv2D的附加尺寸?

  11. 11

    为什么 Solr 在使用 group.limit 时匹配数据和计数不匹配?

  12. 12

    使用conv1D“检查输入时出错:预期conv1d_input具有3维,但数组的形状为(213412,36)”

  13. 13

    Android和HTML页面之间的Webview数据不匹配

  14. 14

    如何在密集或展平的图层之后应用Conv1D:ValueError:形状(1、1、3)和(1、1)不兼容

  15. 15

    如何在 keras 中使用 Conv1D 和 Bidirectional LSTM 对每个时间步进行多类分类?

  16. 16

    使用node-xbee发送数据包时的校验和不匹配错误

  17. 17

    为什么结构和联合之间的尺寸不匹配?

  18. 18

    如何在Keras中为Conv1D重塑输入层?

  19. 19

    JTextArea ArrayList字符串数据和JTextField输入数据不匹配

  20. 20

    用户输入与文件中的数据不匹配

  21. 21

    使用日期时“数据条件不匹配SQL”

  22. 22

    在R中的两个数据帧之间捕获匹配和不匹配的值

  23. 23

    PCA下数据中非单维尺寸不匹配的原因

  24. 24

    更改数据表示“ LabelBinarizer ”后尺寸不匹配

  25. 25

    将Conv1D添加到CNN模型定义时的语法无效

  26. 26

    Word2vec 和 Conv1D 用于文本分类混淆

  27. 27

    输入到 1D Conv 层的数据集形状的困难

  28. 28

    ValueError:Layer conv1d的输入不是符号张量,层的所有输入都应为张量

  29. 29

    使用Tensorflow输入PASCAL-VOC 2012训练数据和标签的好方法

热门标签

归档