import pandas as pd import numpy as np

加载数据

data = pd.read_excel('E:\pythonProject5\深度学习\新建 XLS 工作表.xls')

提取每日开盘价、收盘价、最高价和最低价

open_prices = data['开盘'].values close_prices = data['收盘'].values high_prices = data['最高'].values low_prices = data['最低'].values

将价格数据转换为二维数组

prices = np.array([open_prices, close_prices, high_prices, low_prices]) prices = np.transpose(prices)

from keras.models import Sequential from keras.layers import Conv1D, MaxPooling1D, Flatten, Dense, Dropout

定义CNN模型

model = Sequential() model.add(Conv1D(64, 3, activation='relu', input_shape=(prices.shape[1], 1))) model.add(MaxPooling1D(2)) model.add(Conv1D(32, 3, activation='relu')) model.add(MaxPooling1D(2)) model.add(Flatten()) model.add(Dense(64, activation='relu')) model.add(Dropout(0.5)) model.add(Dense(1, activation='linear'))

model.summary()

将数据转换为三维数组

prices = np.expand_dims(prices, axis=2)

将数据输入模型

features = model.predict(prices)

提取特征

features = np.squeeze(features)

这个错误提示是由于在第二个卷积层后的最大池化层中,池化窗口的大小为2,而输入数据的长度不足以支撑这样的池化操作。解决这个问题的方法有两个:一是增加输入数据的长度;二是减小池化窗口的大小。具体实现可以参考以下代码:

import pandas as pd import numpy as np

加载数据

data = pd.read_excel('E:\pythonProject5\深度学习\新建 XLS 工作表.xls')

提取每日开盘价、收盘价、最高价和最低价

open_prices = data['开盘'].values close_prices = data['收盘'].values high_prices = data['最高'].values low_prices = data['最低'].values

将价格数据转换为二维数组

prices = np.array([open_prices, close_prices, high_prices, low_prices]) prices = np.transpose(prices)

from keras.models import Sequential from keras.layers import Conv1D, MaxPooling1D, Flatten, Dense, Dropout

定义CNN模型

model = Sequential() model.add(Conv1D(64, 3, activation='relu', input_shape=(prices.shape[1], 1))) model.add(MaxPooling1D(2)) model.add(Conv1D(32, 3, activation='relu')) model.add(MaxPooling1D(2)) model.add(Flatten()) model.add(Dense(64, activation='relu')) model.add(Dropout(0.5)) model.add(Dense(1, activation='linear'))

model.summary()

将数据转换为三维数组

prices = np.expand_dims(prices, axis=2)

将数据输入模型

features = model.predict(prices)

提取特征

features = np.squeeze(features)

解决Keras CNN模型训练时出现的“ValueError: One of the dimensions in the output is <= 0 due to downsampling in conv1d_1. Consider increasing the input size.”错误

原文地址: https://www.cveoy.top/t/topic/oZTz 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录