小编A. *_*lla的帖子

Keras 和 Tensorflow 的 NVIDIA GPU 使用率低

我在 Windows 10 上运行带有 keras-gpu 和 tensorflow-gpu 的 CNN,带有 NVIDIA GeForce RTX 2080 Ti。我的电脑有一个 Intel Xeon e5-2683 v4 CPU (2.1 GHz)。我正在通过 Jupyter(最新的 Anaconda 发行版)运行我的代码。命令终端中的输出显示 GPU 正在被使用,但是我正在运行的脚本花费的时间比我预期的训练/测试数据要长,而且当我打开任务管理器时,GPU 利用率似乎非常低。这是一张图片:在此处输入图片说明

请注意,CPU 没有被利用,任务管理器上的任何其他内容都没有表明任何东西都被充分利用了。我没有以太网连接并且已连接到 Wifi(不认为这会产生任何影响,但我不确定 Jupyter,因为它通过网络浏览器运行)。我正在训练大量数据 (~128GB),这些数据都加载到 RAM (512GB) 中。我正在运行的模型是一个全卷积神经网络(基本上是一个 U-Net 架构),具有 566,290 个可训练参数。到目前为止我尝试过的事情: 1. 将批大小从 20 增加到 10,000(将 GPU 使用率从 ~3-4% 增加到 ~6-7%,按预期大大减少训练时间)。2. 将 use_multiprocessing 设置为 True 并增加 model.fit 中的工作人员数量(无效)。

我按照这个网站上的安装步骤操作:https : //www.pugetsystems.com/labs/hpc/The-Best-Way-to-Install-TensorFlow-with-GPU-Support-on-Windows-10-Without-Installing -CUDA-1187/#look-at-the-job-run-with-tensorboard

请注意,此安装不会专门安装 CuDNN 或 CUDA。过去我在使用 CUDA 运行 tensorflow-gpu 时遇到了麻烦(虽然我已经超过 2 年没有尝试过,所以使用最新版本可能更容易),这就是我使用这种安装方法的原因。

这很可能是 GPU 没有得到充分利用的原因(没有 CuDNN/CUDA)吗?是否与专用 GPU …

gpu keras tensorflow

11
推荐指数
2
解决办法
1万
查看次数

Keras稀疏_分类_准确率指标产生“不兼容的形状”错误

我对 Keras 比较陌生,正在尝试使用 TensorFlow 后端实现 U-Net 架构,以便对许多 256x256 图像进行像素级多类分类。输入形状和输出形状均为 256x256x1(批量大小也是 1)。

我有超过 30 个类,所以我尝试将其用作sparse_categorical_crossentropy我的损失函数(常规分类交叉熵会给我带来记忆错误),正如许多在线论坛建议的那样。当我将“metric”参数从“accuracy”更改为“sparse_categorical_accuracy”时,出现以下错误:

InvalidArgumentError: Incompatible shapes: [65536] vs. [1,256,256]   
[[{{node metrics_3/sparse_categorical_accuracy/Equal}} = 
Equal[T=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:GPU:0"](metrics_3/sparse_categorical_accuracy/Reshape, metrics_3/sparse_categorical_accuracy/Cast)]]   
[[{{node metrics_3/sparse_categorical_accuracy/Mean/_749}} =
_Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/device:CPU:0", send_device="/job:localhost/replica:0/task:0/device:GPU:0", send_device_incarnation=1, tensor_name="edge_3000_metrics_3/sparse_categorical_accuracy/Mean", tensor_type=DT_FLOAT,
_device="/job:localhost/replica:0/task:0/device:CPU:0"]()]]
Run Code Online (Sandbox Code Playgroud)

看来我的输出是 1D 而不是 2D?我需要更改数据格式吗?然而,当我尝试在 U-Net 末尾使用扁平层和密集层(以产生 65536 个向量输出)来展平输出时,我收到另一个错误,指出预期输出维度为 1。我也尝试过将最后一层中的通道数更改为我正在使用的类总数(以使输出为 256x256xnum_classes),但我得到了相同的错误。

此外,当我将“metric”参数保留为“accuracy”时,代码会运行,但损失始终存在,NaN并且精度很快收敛到约 0.008。在这种情况下,“准确度”默认为多少?

这些是已知的问题吗sparse_categorical_accuracy?我在网上找不到太多信息,关于这个特定损失函数的 Keras 文档也很少。任何帮助表示赞赏!如果还需要我的代码的其他部分来帮助调试,请告诉我。

python keras tensorflow

5
推荐指数
0
解决办法
1018
查看次数

标签 统计

keras ×2

tensorflow ×2

gpu ×1

python ×1