python - ValueError:数据基数不明确:x 大小:10 y 大小:1 请提供具有相同第一维的数据
问题描述
我正在尝试创建一个 Keras 模型。这是我的代码
init_data = np.array([1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0])
init_data = np.array(init_data,dtype="float").reshape(-1,1)
result_data = np.array([11.0])
result_data = np.array(result_data,dtype="float").reshape(-1,1)
stock_model = Sequential()
stock_model.add(LSTM(10, input_shape=(10,1), return_sequences=True))
stock_model.add(LSTM(5, activation="relu"))
return_sequences = True
stock_model.add(Dense(1))
sgd = SGD(lr=0.01)
stock_model.summary()
stock_model.compile(loss="mean_squared_error", optimizer=sgd, metrics=[tf.keras.metrics.mse])
stock_model.fit(init_data, result_data, epochs=100, verbose=1)
当我运行它时,我收到以下错误:
ValueError: Data cardinality is ambiguous:
x sizes: 10
y sizes: 1
Please provide data which shares the same first dimension.
我已经尝试了很多,但不幸的是还没有解决问题。我已经阅读了引用相同错误的其他问题,但我并没有真正理解我需要改变什么。
解决方案
添加批次维度:
init_data = np.array([1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0])
init_data = np.array(init_data,dtype="float").reshape(1,-1,1) # <= add dimension here
result_data = np.array([11.0])
result_data = np.array(result_data,dtype="float").reshape(1,-1,1) # <= add dimension here
编辑:
对于二维数据:
init_data = np.array([[1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0],[1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0]])
init_data = init_data[..., tf.newaxis]
推荐阅读
- reactjs - 使用 redux 操作写入 Firebase DB 会在 DB 中写入全新数据
- vhdl - 如何编写代码以跳过上升沿并继续计数,直到在 vhdl 中检测到第二个上升沿
- android - 如何使用 AsyncTask 下载大型视频文件?
- java - 将 DISTINCT 与 SQLiteDatabase 查询方法一起使用时如何不使用 LIMIT?
- odoo - 在 POS(销售点)会话中查看条形码字段
- jenkins - Jenkins 流水线条件环境变量
- java - 从智能卡读取私钥以对 XML 文档进行数字签名
- wordpress - WooCommerce - 在不编辑模板的情况下删除换行符
- javascript - 启动我的网络应用程序后,是否可以自动启用用户设备的蓝牙连接?
- javascript - MDB 轮播幻灯片更改事件