python - python中完全连接的深度神经网络输入的重塑误差
问题描述
我正在实现一个完全连接的深度神经网络。为网络提供数据需要重塑我的数据,但我面临这个错误。这是解决它的任何建议吗?
import time
start=time.time()
import numpy as np
from keras.layers import Dense
from keras.models import Sequential
from scipy.io import loadmat
Tar_train = (x['t_train'])
Tar_val = (x['t_val'])
Tar_test = (x['t_test'])
Signal_train = x['data_train']
Signal_val = x['data_val']
Signal_test = x['data_test']
Signal_train = np.reshape(Signal_train,(240*64))
Signal_val = np.reshape(Signal_val,(240*64))
Signal_test = np.reshape(Signal_test,(240*64))
model = Sequential()
model.add(Dense(20 , activation='relu' , input_shape=(240*64,) ))
model.add(Dense(200, activation='relu'))
signal_train 的大小是 (1274, 240, 64) signal_validation 的大小是 (510, 240 , 64) signal_test 的大小是 (764, 240, 64)
错误是:ValueError:无法将大小为 19568640 的数组重新整形为形状(15360,)
解决方案
假设错误发生在第一个np.reshape
,使用
Signal_train = np.reshape(Signal_train, (-1, 240*64))
Signal_val = np.reshape(Signal_val, (-1, 240*64))
Signal_test = np.reshape(Signal_test, (-1, 240*64))
这是因为Signal_train
当您展平其余两个维度时,会保留第一个维度(1274,对于 )。例如,当您将 1274 张 240 x 64 的图像展平为 1274 个尺寸为 240*64 的向量时,总共仍有 1274 张图像。
-1
对于维度大小意味着让 numpy 使用适合原始大小的任何维度大小。在这种情况下,第一个-1
是隐含的1274
,等等。
推荐阅读
- numpy - Numpy 操作 *= 正在重复,尽管它在一个函数中
- javascript - 如何更改锚点外观并保留它直到单击另一个锚点
- ios - 通过防止用户在同一设备上注册来防止滥用促销
- python - 在 postgresql 中删除具有大对象的表时出现问题
- ruby-on-rails - 我如何在rails中使用嵌套的where条件
- angular - 打字稿中的 typeof 运算符
- java - SQLException: [SQLITE_ERROR] SQL error or missing database (no such table:staffreg)
- r - Rcpp 与 Rmarkdown?编译时出错
- postgresql - PostgreSQL, Prevent alter materialized view changing WITH NO DATA to WITH DATA
- codeigniter - 将 url 参数发送到 codeigniter 中的站点