Я сохранил более 1000 моделей для каждого предмета. Теперь мне нужно загрузить все эти модели в память (фрейм данных), чтобы делать прогнозы. Если я просто использую цикл for для загрузки этих моделей, каждая загрузка будет на 3 секунды медленнее, чем загрузка предыдущей модели. Поэтому я пытаюсь использовать multiprocessing.pool (ThreadPool).
Но, как ни странно, использование ThreadPool вызовет предсказание «ValueError: Tensor Tensor». При использовании нормальной загрузки предсказание хорошее.
Я пробовал поток, также получил сообщение об ошибке
#following code will lead to ValueError
from multiprocessing.pool import ThreadPool as Pool
def load_model(stock):
model_pred.at[0, stock] = keras.models.load_model (
'C:/Users/chenp/Documents/rqpro/models/{}_model.h5'.format (stock))
pool = Pool(processes=16)
for stock in trade_stocks['stock']:
pool.map (load_model, (stock,))
#Prediction
for stock in trade_stocks['stock']:
model = model_pred.loc[0, stock]
prediction = model.predict(pred_data)
#Get following msg:
ValueError: Tensor Tensor("dense_9/Softmax:0", shape=(?, 2), dtype=float32) is not an element of this graph.
#Normal code but too low efficient
for stock in trade_stocks['stock']:
model_pred.at[0, stock] = keras.models.load_model(
'C:/Users/chenp/Documents/rqpro/models/{}_model.h5'.format(stock))
#Get following msg:
ValueError: Tensor Tensor("dense_9/Softmax:0", shape=(?, 2), dtype=float32) is not an element of this graph.