问题标签 [tensorflow-gpu]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
tensorflow - 如何从 PredictResponse 对象中检索 float_val?
我正在对张量流服务模型进行预测,并将此PredictResponse
对象作为输出返回:
结果:
我想把浮点数作为一个列表。或者,或者,返回 argmax float_val 的值/索引!
这是通过以下方式生成的:
存根 = prediction_service_pb2.beta_create_PredictionService_stub(channel) 结果 = 存根.Predict(request, 200.0)
提前感谢您的帮助。
tensorflow - “未找到符号”添加新操作
我创建了一个自定义操作,但无法从 python 导入它。命令行错误:
这是我的来源:
生成文件
测试.py
data_augmentation.h
data_augmentation.cc
data_augmentation.cu.cc
python - Tensorflow GPU 安装正确,但 Anaconda 在 CPU 上运行
那是我第二次经历 tensorflow (gpu) 的整个安装过程。这次我在 cmd 中运行activate tensorflow
,然后如果我在 python 解释器中输入以下测试代码:
(来源)
它成功识别 GPU 并在其上运行矩阵函数。但是,当我打开 Anaconda Spyder IDE 并以解释器所说的代码正在 CPU 上运行的相同方式运行相同的测试时。我该如何解决?什么可能导致它?我在 Win 10 上运行。
任何帮助都会很有用,在此先感谢您。
亲切的问候,康尼
tensorflow - tf.nn.fused_batch_norm 返回的方差与 tf.nn.moments 不同
当我尝试比较来自 tf.nn.fused_batch_norm 的方差输出和来自 tf.nn.moments 的方差输出时,对于相同的输入,我没有相同的值。
您可以看到我试图检查它是否与 epsilon 有关,但显然不是,因为在 GPU 上运行的脚本返回此(它是随机的,但问题总是会发生):
如您所见,tf.nn.fused_batch_norm 的方差高于 tf.nn.moments(即使在添加 sqrt(epsilon) 之后)
任何线索为什么会有这种差异?(我觉得 >5% 不算小,看起来也不像是数值精度问题)
memory-management - Keras + TensorFlow 中的 GridSearch 导致资源耗尽
我知道这个错误是反复出现的,我知道是什么原因造成的。例如,用 163 张 150x150 的图像运行这个模型会给我错误(但是我不清楚为什么设置 batch_size Keras 似乎仍然试图在 GPU 中一次分配所有图像):
鉴于此,我将图像尺寸减小到 30x30(这导致精度下降,正如预期的那样)。但是,在此模型中运行网格搜索资源耗尽。
我想知道是否有可能在网格搜索使用的每个组合之前“清理”一些东西(不确定我是否说清楚了,这对我来说是全新的)。
编辑
使用fit_generator
也给了我同样的错误:
tensorflow - TensorFlow 不会在 CUDA 支持下构建
我已经尝试按照安装指南中的描述从源代码构建 tensorflow 。我已经成功地使用仅 cpu 支持和 SIMD 指令集构建它,但我在尝试使用 CUDA 支持构建它时遇到了麻烦。
系统信息:
- 薄荷 18 莎拉
- 4.4.0-21-通用
- 海合会 5.4.0
- 铿锵3.8.0
- Python 3.6.1
- Nvidia GeForece GTX 1060 6GB(计算能力 6.1)
- CUDA 8.0.61
- CuDNN 6.0
这是我使用 CUDA、gcc 和 SIMD 构建的尝试:
关闭所有额外的标志:
尝试使用 clang 代替:
这是当前 master 分支 (31aa360)、r1.2 (5d8c0a6) 和 r1.1 (8ddd727) 上的一致行为。我已经看到了许多 github 问题(8790、9651、10367)和一两个堆栈溢出帖子(在这里,我尝试使用 gcc/g++ 4.8),但它们似乎都已解决和/或与我的问题稍微无关。
machine-learning - Tensorflow 卷积层因“无法将卷积入队”而崩溃
我在 tensorflow 中使用卷积层和 4GB 内存 GPU(GTX980)
在使用卷积层之前,一切正常,但是当我开始使用卷积层时,出现以下错误
无法在流上将卷积排入队列:CUDNN_STATUS_NOT_SUPPORTED
我听说这个问题与 GPU 内存有关
而且我知道由于 protobuf 限制,单个 tensorflow OP 最多可以有 2GB,但是我的网络没有任何超过 2GB 的 OP,所以这不是问题。
问题是,当我使用卷积层时,我的整个网络大小(权重矩阵大小)甚至更小,但这个错误不断发生。
当我将批量大小更改为非常小的数字时,不会发生错误,但 SGD 在这种小批量大小中效果不佳。
可以使用 PyTorch 等其他框架解决这个问题吗?还是我仍然可以使用 Tensorflow 运行 500000 的批量大小?
还是与小内存(4GB)GPU有关?
请帮帮我,我被困住了。
网络摘要
- 一个一维卷积层
- FC 层
- 回归层
数据汇总
- 批量大小 = 500000
- 特征大小 = 15(浮点数)
- 输入占位符大小:15(特征数量)x 8(float64)x 500000(批量大小)= 60MB
型号代码
如您所见,这是一个非常小的网络
我尝试使用没有卷积层的更大网络,但效果很好
tensorflow - 展开 Tensorflow 的循环以避免频繁的 GPU 内核开销
考虑下面的程序,我对它b += a
进行了多次迭代计算。
显然,上面的循环调用了至少 100 次内核启动,这看起来是不必要的,因为我实际上是在原地做这个添加。有什么办法可以避免内核启动开销?理想情况下,我正在寻找一种 tensorflow API 解决方案(只有一次调用run
),而不是改变B += a
.
python - Tensorflow GPU 应用程序崩溃 Jupyter notebook 内核
我们正在使用多个 Jupyter 笔记本在 GPU 上运行 TensorFlow 应用程序。每隔一段时间,其中一次运行会使笔记本电脑崩溃,并简单地通知“内核已崩溃......”。
当我们将代码放入 python .py 文件时,stderr 输出为
在另一次运行中,stderr 报告了:
问题是 tensorflow 应用程序正在占用大量内存。在 Linux 中,您可以运行top
以查看发生了什么。在我们的机器上,我们看到每个 tensorflow 进程都在抓取0.55t
!
当您在 Jupyter 笔记本中运行该进程并且不关闭笔记本时,笔记本不会释放内存。在某些时候,您将运行一个无法访问内存的进程,它会死掉。如果你在笔记本中运行,它只会告诉你内核已经死了。
有人能帮忙吗?
python - 在 Tensorflow CIFAR-10 教程中拆分训练/验证中的数据
我对如何在 CIFAR-10 TensorFlow 教程中实现验证感到困惑。
我正在运行位于https://github.com/tensorflow/models/tree/master/tutorials/image/cifar10的 CIFAR-10 模型。
假设我有一堆文件,我既想洗牌,也想拆分为每个训练时期的训练和验证数据(通过时期,我的意思是整个数据集、训练和验证的一轮)。
也就是说,然后我会运行训练,训练完成后,我会运行验证,然后,我会重新洗牌数据文件并拆分为新的训练和验证集。
我怀疑这样做的方法可能涉及 _LoggerHook 对象:
由于这已经在跟踪步骤,但我如何提供正确的文件队列?
任何朝着正确方向的帮助或指示都会很棒。