我正在尝试在本文档之后宽松地向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) Keras和DL新手在这里.我想构建一个模型来训练顺序文本数据以进行分类.数据看起来像:
id,文字,标签
1,tom.hasLunch,0
2,jerry.drinkWater,1
我用python3.5和keras 2(TF作为后端)构建它.模型摘要如下:
训练数据大小约为30GB.参数的数量并不多,因为我将功能的嵌入层数从300减少到100,而我只为每行/ ID选择前1000个字.在AWS EC2 p2.8xlarge实例上运行后,我发现了
低易失性gpu-util但高GPU内存使用率GPU-Util通常约为30%ish且不超过50%,我希望能更好地利用GPU,以便加速训练.1个时代现在需要大约6-7个小时.

考虑到实例/机器的强大程度,CPU和内存使用率也非常低.看起来只有python3线程正在运行,但它确实通过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
我将我的整个数据集作为元组列表存储在内存中,其中每个元组对应一批固定大小的"N".即
(X [I],标记[I],长度[I])
主要问题:批次间的差异很大.
我正在查看以下数据集API的示例和文档,但无法理解如何为我的案例创建DataSet对象.像Dataset.from_tensor_slices和Dataset.from_tensor这样的API似乎不起作用(抛出广播错误),因为它们要求张量具有相同的形状i,而且批次之间的W是相同的.有没有办法我可以做而不必填充我的批次(使用DataSet.padded_batch)?
是否有任何无缝方式可以在 NV V100/P100 中实现最佳 fp16 性能?例如,我有一个正在 fp32 中训练的模型和实现。该应用程序完美运行。现在,我想探索一下fp16的体验。有什么简单的方法可以启用此功能。
我有一个pytorch模型和tensorflow模式,我想他们在一起训练的一个GPU,以下过程波纹管:input --> pytorch model--> output_pytorch --> tensorflow model --> output_tensorflow --> pytorch model。
有可能做到这一点吗?如果答案是肯定的,我会遇到什么问题吗?
提前致谢。
我尝试了GitHub代码Object-Detector-App
这适用于具有1秒延迟的单个摄像头,但是当我为多个摄像头尝试它时,(两个,三个....)为此我为每个摄像头创建多个线程用于图形和会话,并且我得到的高延迟取决于数量相机.a)我使用的是NVIDIA Quadpro GP100,相机输入为HD(1920x1080)b)我正在使用SSD_VI_COCO_11_06_2017
我在tensorflow中研究了线程和队列概念,我用google搜索了很多但是找不到实用的方法.
我想知道我正在以正确的方式处理多个相机以进行物体检测,或者有更好的方法吗?
我刚刚为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) 我正在尝试导入 tensorflow(使用 GPU)并不断收到以下错误:
导入错误:找不到“cudart64_80.dll”。TensorFlow 要求将此 DLL 安装在 %PATH% 环境变量中命名的目录中
设置:
环境变量:
我还在 %PATH% 变量中添加了以下内容:
我错过了什么?尽管在 %PATH% 中明确指定了它的位置,但为什么它找不到 cudart64_80.dll?
任何帮助将非常感激。
GPU版本Tensorflow?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) 我无法匹配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
tensorflow-gpu ×10
tensorflow ×7
keras ×3
python ×3
c++ ×1
cuda ×1
lstm ×1
python-3.x ×1
pytorch ×1
spyder ×1
word2vec ×1