Error when checking input: expected input_1 to have shape (1024,) but got array with shape (819200,)

93 篇文章 4 订阅
7 篇文章 0 订阅

问题描述

在使用卷积神经网络(CNN)训练模型时候,你会发现有一系列的维度不匹配的问题,报错千奇百怪。

一会说应该输入的是2维,但是输入数据却是3维。

一会说应该输入的是(1024,),但是输入的却是(819200,)。虽然数字不同,但是遇到的问题总归都是这样。

经过我几个消失的奋斗终于解决了这个问题:

解决方案

(1)更改输入数据维度,善于运用reshape将数据更改为你想要的类型。

博主冷月无声的这篇应该能够解决你所有的reshape问题。

Python的reshape的用法:reshape(1,-1)_冷月无声的博客-CSDN博客_reshape函数python

(2)更改模型input部分的输入值,将其改为获取到的训练模型部分的数据

        inputs = Input(shape = (x_train.shape[1],))
        x1 = keras.layers.core.Reshape((x_train.shape[1],1), input_shape=(x_train.shape[1],))((inputs))
        x1 = keras.layers.convolutional.Conv1D(64,10,strides=1,kernel_initializer='he_uniform')(x1)
        x1 = keras.layers.normalization.BatchNormalization()(x1)
        x1 = keras.layers.core.Activation('relu')(x1)

这两招基本上都能解决问题。

(3)数据溢出问题

很多时候,训练时候,数据维度选择弄错会导致溢出,可以通过减少其输入量以及特征降维来解决这个问题。你需要注意的是,那个特征是不是一定需要这么多的维度才能实现训练的目的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ACMSunny

赠人玫瑰,手有余香。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值