Rasa x 不使用 GPU

问题描述

我通过 docker compose 从以下链接安装了 Rasa x full。 https://rasa.com/docs/rasa-x/installation-and-setup/install/docker-compose

我插入了大约 100-150 个 nlu、响应、故事数据。当我训练模型时,需要 5-6 分钟。它使用cpu。 我的机器有GPU。我从这里安装了 tensorflow 和 nvidia 驱动程序。 https://www.tensorflow.org/install/gpu

但是当我训练我的模型时,它仍然使用 cpu。我运行 nvidia-smi 命令,它说你有 gpu 驱动程序,但没有找到 runnign 进程。

在此之后,我尝试了以下操作;

sudo mkdir -p /etc/systemd/system/docker.service.d
sudo tee /etc/systemd/system/docker.service.d/override.conf <<EOF
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --host=fd:// --add-runtime=nvidia=/usr/bin/nvidia-container-runtime
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

nano  /etc/docker/daemon.json                                                                                           

{
    "default-runtime": "nvidia","runtimes": {
        "nvidia": {
            "path": "/usr/bin/nvidia-container-runtime","runtimeArgs": []
        }
    }
}
sudo pkill -SIGHUP dockerd
systemctl daemon-reload
systemctl restart docker

但是还是不能用。

我改变了我的 docker-compose 文件

服务区插入nvsmi测试服务;

 nvsmi:
    image: ubuntu:18.04
    environment:
      NVIDIA_VISIBLE_DEVICES: all
      NVIDIA_DRIVER_CAPABILITIES: all
    command: nvidia-smi

我运行新的撰写文件,然后 nvsmi 容器返回 gpu 驱动程序列表(如预期) 我在 x-rasa-services: &default-rasa-service添加了环境区域中的以下值 和 rasa-productionrasa-worker

  NVIDIA_VISIBLE_DEVICES: all
  NVIDIA_DRIVER_CAPABILITIES: all

但是还是不能用。

我尝试在 python 中编写以下代码,它使用我的 GPU

import tensorflow as tf
tf.debugging.set_log_device_placement(True)
a = tf.constant([[1.0,2.0,3.0],[4.0,5.0,6.0]])
b = tf.constant([[1.0,2.0],[3.0,4.0],[5.0,6.0]])
c = tf.matmul(a,b)

print(c)

我如何在 rasa 中使用我的 GPU。请帮帮我?

My OS version: Ubuntu 18.04
rasa 2.1.2 full version
docker-compose version: 1.26.0
tensorflow: 2.4.0
python version: 2.7.17,3,3.6(multiple version)
NVIDIA-SMI 460.27.04    Driver Version: 460.27.04    CUDA Version: 11.2

谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...