python多线程可以在windows下实现吗_python-3.x – 在Windows上使用某种形式的keras多处理/线程...

结合序列,使用multi_processing = False和workers =例如. 4确实有效.

我刚刚意识到,在问题的示例代码中,我没有看到加速,因为数据生成太快.通过插入time.sleep(2),这变得很明显.

class DummySequence(Sequence):

def __init__(self, x_set, y_set, batch_size):

self.x, self.y = x_set, y_set

self.batch_size = batch_size

def __len__(self):

return int(np.ceil(len(self.x) / float(self.batch_size)))

def __getitem__(self, idx):

batch_x = self.x[idx * self.batch_size:(idx + 1) * self.batch_size]

batch_y = self.y[idx * self.batch_size:(idx + 1) * self.batch_size]

time.sleep(2)

return np.array(batch_x), np.array(batch_y)

x = np.random.random((100, 3))

y = to_categorical(np.random.random(100) > .5).astype(int)

seq = DummySequence(x, y, 10)

model = Sequential()

model.add(Dense(32, input_dim=3))

model.add(Dense(2, activat

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的 Python LSTM 预测全球温度的示例代码,同时使用线处理数据: ```python import threading import numpy as np import pandas as pd from sklearn.preprocessing import MinMaxScaler from keras.models import Sequential from keras.layers import Dense, LSTM # 加载数据 data = pd.read_csv('global_temperature.csv') data = data[['LandAndOceanAverageTemperature']] data = data.dropna() # 数据归一化 scaler = MinMaxScaler(feature_range=(0, 1)) data = scaler.fit_transform(data) # 构造训练数据集 train_size = int(len(data) * 0.7) train_data, test_data = data[:train_size,:], data[train_size:,:] def create_dataset(dataset, look_back=1): dataX, dataY = [], [] for i in range(len(dataset)-look_back-1): a = dataset[i:(i+look_back), 0] dataX.append(a) dataY.append(dataset[i + look_back, 0]) return np.array(dataX), np.array(dataY) look_back = 5 trainX, trainY = create_dataset(train_data, look_back) testX, testY = create_dataset(test_data, look_back) # 构建 LSTM 模型 model = Sequential() model.add(LSTM(units=50, input_shape=(look_back, 1))) model.add(Dense(units=1)) model.compile(loss='mean_squared_error', optimizer='adam') model.fit(trainX, trainY, epochs=100, batch_size=32, verbose=2) # 使用线程预测 def predict(data): data = scaler.transform(data) data = np.reshape(data, (1, look_back, 1)) prediction = model.predict(data) return scaler.inverse_transform(prediction)[0][0] class PredictorThread(threading.Thread): def __init__(self, data): threading.Thread.__init__(self) self.data = data def run(self): prediction = predict(self.data) print("Predicted temperature: ", prediction) # 启动多个预测线程 num_threads = 4 threads = [] for i in range(num_threads): start_index = i * (len(test_data) // num_threads) end_index = (i + 1) * (len(test_data) // num_threads) data = test_data[start_index:end_index] t = PredictorThread(data) t.start() threads.append(t) # 等待所有预测线程完成 for t in threads: t.join() # 所有预测完成 print("All predictions done.") ``` 这段代码首先加载全球温度数据,并进行归一化处理。然后构造训练数据集并使用 LSTM 构建模型进行训练。接着,定义了一个 `predict` 函数用于进行温度预测,并创建了一个 `PredictorThread` 类用于实现线程预测。在主线程中创建多个 `PredictorThread` 对象,并启动多个预测线程进行温度预测。最后等待所有预测线程完成后输出预测完成的消息。在这个例子中,我们使用Python 自带的 `threading` 模块来实现线处理数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值