请等待Python中的动画或跨多个GPU分发进程以快速执行?

2024-04-27 21:21:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在写一些代码,我已经没有时间去完成一个项目了。这就是为什么我在这里发布这个问题,而不是自己尝试

我有时间序列数据,正在创建帧,然后将其馈送到深度模型,这需要很长时间才能执行。通常,在一个GPU上甚至在几个GPU上需要5到10分钟的时间,并且会显示一个空白的命令行屏幕。对于用户来说,等待5到10分钟,只看到一个空白的命令行界面是非常不方便的

我已经在使用Horovod框架进行分布式深度学习培训。是否有一种方法可以跨多个GPU分配这个特定长过程的计算并快速执行它们

如果没有,我就别无选择,只能显示一条消息,如“正在生成帧,请稍候”,并伴有一些可爱的动画。因此,如何将等待动画合并到这个多嵌套循环代码中

代码如下:

def create_lstm_data(X, y, step_back=50, step_forword=1):
    out_X = []
    out_y = []
    size = len(X)
    for i, features in enumerate(X):
        if i >= step_back and i < size - step_forword:
            tmp_X = []
            tmp_y = []
            for j in range(i - step_back, i):
                tmp_X.extend([X[j]])
            out_X.append(tmp_X)
            for j in range(i, i + step_forword):
                tmp_y.extend([y[j]])
            out_y.append(tmp_y)
    return np.array(out_X), np.array(out_y)

这里我调用这个函数:

X_lstm_train, y_lstm_train = create_lstm_data(X_train, y_train)  
X_lstm_test, y_lstm_test = create_lstm_data(X_test, y_test)

X_列车形状为:(1680179,52),y_列车形状为:(1680179,) X_测试形状为:(494777,52),y_测试形状为:(494777,)