-

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  11 随笔 :: 0 文章 :: 0 评论 :: 1003 阅读
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import numpy as np
from multiprocessing import Process, Queue
 
def process_data(data, model_TSNet, tsnet_input, tsnet_output, queue):
    model = tflite_runtime.Interpreter(model_path=model_TSNet)
    model.allocate_tensors()
    model.set_tensor(tsnet_input[0]['index'], data.reshape((1,200,8)).astype(np.float32))
    model.invoke()
    result = model.get_tensor(tsnet_output[0]['index'])
    queue.put(result)
 
# 创建进程
num_processes = 4  # 设置进程数量
processes = []
queue = Queue()
for data in temp_data:
    p = Process(target=process_data, args=(data, model_TSNet, tsnet_input, tsnet_output, queue))
    p.start()
    processes.append(p)
 
# 等待所有进程完成
for p in processes:
    p.join()
 
# 获取结果
results = []
while not queue.empty():
    result = queue.get()
    results.append(result)
TSNet_pre = np.vstack(results)

先定义一个 process_data 函数,用于处理单个数据,并将结果放入队列中。

然后使用 multiprocessing.Process 类创建多个进程,并将数据分配给每个进程进行处理。

在每个进程中创建一个新的模型实例,并使用该模型计算数据。

然后将结果放入队列中,以便在主进程中进行汇总。

最后等待所有进程完成,并将队列中的结果合并为一个数组 TSNet_pre

 

 

由于每个进程都有自己的内存空间,因此每个进程都需要创建一个新的模型实例,并将其加载到内存中。因此,使用 Process 类可能会占用更多的系统资源。

posted on   p_xcn  阅读(95)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示