标签: tensorflow-gpu

在Tensorflow中添加GPU Op

我正在尝试在文档之后宽松地向TensorFlow添加新操作。不同之处在于我正在尝试实现基于GPU的操作。我要添加的操作是此处的cuda操作(cuda_op.py,cuda_op_kernel.cc,cuda_op_kernel.cu.cc)。我正在尝试在tensorflow之外编译这些文件,并使用tf.load_op_library它们将它们拉入。我进行了一些更改,所以这里是我的文件:

cuda_op_kernel.cc

#include "tensorflow/core/framework/op.h"
#include "tensorflow/core/framework/shape_inference.h"
#include "tensorflow/core/framework/op_kernel.h"

using namespace tensorflow;  // NOLINT(build/namespaces)

REGISTER_OP("AddOne")
    .Input("input: int32")
    .Output("output: int32")
    .SetShapeFn([](::tensorflow::shape_inference::InferenceContext* c) {
      c->set_output(0, c->input(0));
      return Status::OK();
    });

void AddOneKernelLauncher(const int* in, const int N, int* out);

class AddOneOp : public OpKernel {
 public:
  explicit AddOneOp(OpKernelConstruction* context) : OpKernel(context) {}

  void Compute(OpKernelContext* context) override {
    // Grab the input tensor
    const Tensor& input_tensor = context->input(0);
    auto input = input_tensor.flat<int32>();

    // Create an output tensor
    Tensor* output_tensor …
Run Code Online (Sandbox Code Playgroud)

c++ python cuda tensorflow tensorflow-gpu

5
推荐指数
1
解决办法
2268
查看次数

高GPU内存使用但低挥发性gpu-util

Keras和DL新手在这里.我想构建一个模型来训练顺序文本数据以进行分类.数据看起来像:

id,文字,标签

1,tom.hasLunch,0

2,jerry.drinkWater,1

我用python3.5和keras 2(TF作为后端)构建它.模型摘要如下:

  1. 第一个/输入层是一个word2Vec嵌入,它是从头开始构建的,有4332个字.
  2. 第二层是一个简单的LSTM层,参数包括:(dense_dim = 100,kernel_initializer ='he_normal',dropout = 0.15,recurrent_dropout = 0.15,implementation = 2)
  3. 接下来是第三个辍学层:辍学(0.3)
  4. 输出层

模型摘要

训练数据大小约为30GB.参数的数量并不多,因为我将功能的嵌入层数从300减少到100,而我只为每行/ ID选择前1000个字.在AWS EC2 p2.8xlarge实例上运行后,我发现了

  1. 低易失性gpu-util但高GPU内存使用率GPU-Util通常约为30%ish且不超过50%,我希望能更好地利用GPU,以便加速训练.1个时代现在需要大约6-7个小时. GPU工具和内存使用情况

  2. 考虑到实例/机器的强大程度,CPU和内存使用率也非常低.看起来只有python3线程正在运行,但它确实通过htop显示多个线程,但仍然是非常低的CPU利用率. CPU和内存使用率低

HTOP CPU多核心利用率

您能否建议更好地利用GPU,CPU和内存的方法?

另一个问题是顺序文本数据主要是骆驼模式,例如"tom.hasLunch","jerry.drinkWater"等.

如果以[tom,has,lunch],[jerry,drink,water]的形式分割单词比[tom,haslunch],[jerry,drinkwater]更好吗?后者不会将单词分成细粒度,这可能类似于为每个标记化的单词指定数字/ id,如1表示haslunch,2表示drinkwater.

更新,到目前为止它经历了6个时代,似乎它开始在第5纪元之后过度拟合并且似乎时代3获得了最佳模型/性能,后续问题是为什么验证准确性优于训练准确性?大概通常是另一种方式?

大纪元1/10

损失:0.2445 - acc:0.8944 - val_loss:0.1646 - val_acc:0.9318

大纪元2/10

损失:0.1870 - acc:0.9232 - val_loss:0.1450 - val_acc:0.9408

大纪元3/10

损失:0.1675 - acc:0.9326 - val_loss:0.1728 - val_acc:0.9238

大纪元4/10

损失:0.2060 - acc:0.9116 - val_loss:0.1550 - val_acc:0.9337

大纪元5/10

损失:0.1676 - acc:0.9320 - val_loss:0.1268 - val_acc:0.9499

大纪元6/10

损失:0.4216 - acc:0.7999 - val_loss:0.4375 - val_acc:0.7981

word2vec deep-learning lstm keras tensorflow-gpu

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

TensorFlow的数据集API:可变大小的输入

我将我的整个数据集作为元组列表存储在内存中,其中每个元组对应一批固定大小的"N".即

(X [I],标记[I],长度[I])

  • x [i]:numpy形状的数组[N,W,F]; 这里有N个例子,每个W时间步长; 所有时间步长都有固定数量的特征F.
  • label [i]:class:shape [N,]批量中每个示例一个
  • length [i]:数据中的length(次数步数):shape [N,]:这是批处理中每个示例的时间步长(W)

主要问题:批次间的差异很大.

我正在查看以下数据集API的示例文档,但无法理解如何为我的案例创建DataSet对象.像Dataset.from_tensor_slices和Dataset.from_tensor这样的API似乎不起作用(抛出广播错误),因为它们要求张量具有相同的形状i,而且批次之间的W是相同的.有没有办法我可以做而不必填充我的批次(使用DataSet.padded_batch)?

tensorflow tensorflow-gpu tensorflow-datasets

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

如何使用在 fp32 中训练的模型在 fp16 中进行 tensorflow 推理

是否有任何无缝方式可以在 NV V100/P100 中实现最佳 fp16 性能?例如,我有一个正在 fp32 中训练的模型和实现。该应用程序完美运行。现在,我想探索一下fp16的体验。有什么简单的方法可以启用此功能。

tensorflow tensorflow-gpu tensorflow-xla

5
推荐指数
1
解决办法
1196
查看次数

是否可以在一个 GPU 上同时训练 pytorch 和 tensorflow 模型?

我有一个pytorch模型和tensorflow模式,我想他们在一起训练的一个GPU,以下过程波纹管:input --> pytorch model--> output_pytorch --> tensorflow model --> output_tensorflow --> pytorch model

有可能做到这一点吗?如果答案是肯定的,我会遇到什么问题吗?

提前致谢。

tensorflow pytorch tensorflow-gpu

5
推荐指数
1
解决办法
2709
查看次数

使用多个摄像头进行Tensorflow对象检测

我尝试了GitHub代码Object-Detector-App

这适用于具有1秒延迟的单个摄像头,但是当我为多个摄像头尝试它时,(两个,三个....)为此我为每个摄像头创建多个线程用于图形和会话,并且我得到的高延迟取决于数量相机.a)我使用的是NVIDIA Quadpro GP100,相机输入为HD(1920x1080)b)我正在使用SSD_VI_COCO_11_06_2017

我在tensorflow中研究了线程和队列概念,我用google搜索了很多但是找不到实用的方法.

我想知道我正在以正确的方式处理多个相机以进行物体检测,或者有更好的方法吗?

python-3.x tensorflow-gpu

5
推荐指数
1
解决办法
640
查看次数

仅使用1-5%Tensorflow-gpu和Keras的GPU

我刚刚为gpu安装了tensorflow,并为我的CNN使用了keras。在训练期间,我的GPU仅使用了5%,但是在训练期间使用了6GB的vram中的5个。有时会出现故障,在控制台上打印0.000000e + 00,gpu降到100%,但几秒钟后,训练速度又降低到5%。我的GPU是Zotac gtx 1060 mini,我正在使用Ryzen 5 1600x。

Epoch 1/25
 121/3860 [..............................] - ETA: 31:42 - loss: 3.0575 - acc: 0.0877 - val_loss: 0.0000e+00 - val_acc: 0.0000e+00Epoch 2/25
 121/3860 [..............................] - ETA: 29:48 - loss: 3.0005 - acc: 0.0994 - val_loss: 0.0000e+00 - val_acc: 0.0000e+00Epoch 3/25
  36/3860 [..............................] - ETA: 24:47 - loss: 2.9863 - acc: 0.1024
Run Code Online (Sandbox Code Playgroud)

python spyder deep-learning keras tensorflow-gpu

5
推荐指数
1
解决办法
6178
查看次数

加载 tensorflow 时出错 - 找不到“cudart64_80.dll”

我正在尝试导入 tensorflow(使用 GPU)并不断收到以下错误:

导入错误:找不到“cudart64_80.dll”。TensorFlow 要求将此 DLL 安装在 %PATH% 环境变量中命名的目录中

设置:

  • 英伟达 GTX 1080
  • CUDA开发工具 v8.0
  • cuDNN 6.0
  • 张量流-GPU 1.4

环境变量:

  • CUDA_HOME:C:\Program Files\NVIDIA GPU 计算工具包\CUDA\v8.0
  • CUDA_PATH: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0
  • CUDA_PATH_V8.0: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0

我还在 %PATH% 变量中添加了以下内容:

  • C:\Program Files\NVIDIA GPU 计算工具包\CUDA\v8.0\bin
  • C:\Program Files\NVIDIA GPU 计算工具包\CUDA\v8.0\libnvvp
  • C:\Program Files\NVIDIA GPU 计算工具包\CUDA\v8.0\extras\CUPTI\libx64
  • C:\Program Files\NVIDIA GPU 计算工具包\CUDA\v8.0\lib\x64

我错过了什么?尽管在 %PATH% 中明确指定了它的位置,但为什么它找不到 cudart64_80.dll?

任何帮助将非常感激。

python tensorflow tensorflow-gpu

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

list_local_device张量流未检测到GPU

  1. 有没有办法检查我的安装GPU版本Tensorflow
  2. !nvidia-smi

2017年12月18日星期一23:58:01

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 384.90                 Driver Version: 384.90                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 1070    Off  | 00000000:01:00.0  On |                  N/A |
| N/A   53C    P0    31W /  N/A |   1093MiB /  8105MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage …
Run Code Online (Sandbox Code Playgroud)

keras tensorflow tensorflow-gpu

5
推荐指数
1
解决办法
8766
查看次数

Tensorflow对象检测API具有缓慢的推理时间和tensorflow服务

我无法匹配Google报告的模型动物园中发布的模型的推断时间.具体来说,我正在尝试他们的faster_rcnn_resnet101_coco模型,其中报告的推理时间是106ms在Titan X GPU上.

我的服务系统使用TF 1.4在由Google发布的Dockerfile构建的容器中运行.我的客户端是在Google发布的初始客户端之后建模的.

我正在运行Ubuntu 14.04,TF 1.4和1 Titan X.我的总推理时间比谷歌报告的差330倍~330ms.制作张量原型需要~150ms,Predict需要~180ms.我saved_model.pb是直接从模型动物园下载的tar文件.有什么我想念的吗?我可以采取哪些步骤来缩短推理时间?

object-detection tensorflow tensorflow-serving tensorflow-gpu object-detection-api

5
推荐指数
1
解决办法
2107
查看次数