相关疑难解决方法(0)

具有Tensorflow后端的Keras可以随意使用CPU或GPU吗?

我在Keras上安装了Tensorflow后端和CUDA.我想有时需要强迫Keras使用CPU.这可以在没有在虚拟环境中安装单独的CPU Tensorflow的情况下完成吗?如果是这样的话?如果后端是Theano,可以设置标志,但我还没有听说过可通过Keras访问的Tensorflow标志.

python machine-learning keras tensorflow

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

ConfigProto中的选项如allow_soft_placement和log_device_placement是什么意思?

我们在许多TensorFlow教程中经常看到这一点:

sess = tf.Session(config=tf.ConfigProto(allow_soft_placement=True, 
                                        log_device_placement=True))
Run Code Online (Sandbox Code Playgroud)

是什么allow_soft_placementlog_device_placement意味着什么?

tensorflow

28
推荐指数
3
解决办法
2万
查看次数

限制Keras使用的核心数量

我有一个64核的共享机器,我有一个很大的Keras功能管道,我想运行.事情是,似乎Keras自动使用所有可用的核心,我不能这样做.

我使用Python,我想在for循环中运行67个神经网络.我想使用一半的可用内核.

我找不到任何限制Keras核心数量的方法......你有什么线索吗?

python cpu-cores keras tensorflow

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

TensorFlow作业默认使用多个核心吗?

我正在从TensorFlow模型运行imagenet .我已经在Github评论中描述了sess.run,并在chrome:// tracing中获得了以下视图

在此输入图像描述

我想知道TF有时会一直使用多核或单核.当操作可以并行运行时,我认为它使用多个核心,如图中红色框所示.但是,所有这6个线程都列在/ job:localhost/replicate:0/task:0/cpu:0下,这让我对我的解释提出质疑.cpu:0是指所有CPU内核吗?

我在一个有8核的桌面上运行.我运行htop以查看TF运行期间的核心利用率,我看到只有一个核心达到饱和95-100%.

tensorflow

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

Tensorflow 服务性能与直接推理相比非常慢

我在以下场景中运行:

  • 单节点 Kubernetes 集群(1x i7-8700K、1x RTX 2070、32GB RAM)
  • 1 个 Tensorflow 服务 Pod
  • 4 个推理客户端 Pod

推理客户端所做的是从 4 个独立的摄像头(每个 1 个)获取图像,并将其传递给 TF-Serving 进行推理,以便了解在视频源上看到的内容。

我之前一直通过直接调用 TensorFlow 在推理客户端 Pod 中单独进行推理,但这在显卡的 RAM 上效果不佳。Tensorflow Serving 最近被引入到组合中,以优化 RAM,因为我们不会将重复的模型加载到显卡。

并且性能看起来并不好,对于 1080p 图像,它看起来像这样:

Direct TF:20ms 用于输入张量创建,70ms 用于推理。TF-Serving:80ms 用于 GRPC 序列化,700-800ms 用于推理。

TF-Serving Pod 是唯一一个可以访问 GPU 的容器,并且它是专门绑定的。其他一切都在 CPU 上运行。

我可以做任何性能调整吗?

我正在运行的模型是来自 TF Model Zoo 的 Faster R-CNN Inception V2。

提前谢谢了!

kubernetes tensorflow tensorflow-serving

6
推荐指数
1
解决办法
1140
查看次数

了解 tensorflow 内部/内部并行线程

我想更多地了解这两个参数:intra 和 inter op parallelism threads

session_conf = tf.ConfigProto(
  intra_op_parallelism_threads=1,
  inter_op_parallelism_threads=1)
Run Code Online (Sandbox Code Playgroud)

我读了这篇文章,其中有一个很好的解释:TensorFlow: inter- and intra-op parallelism configuration

但我正在寻求确认并在下面提出新问题。我在 keras 2.0.9、tensorflow 1.3.0 中运行我的任务:

  1. 当两者都设置为 1 时,是否意味着,例如在具有 4 个内核的计算机上,四个内核将只共享 1 个线程?
  2. 为什么在速度方面使用 1 个线程似乎对我的任务影响不大?我的网络具有以下结构:dropout、conv1d、maxpooling、lstm、globalmaxpooling、dropout、dense。上面引用的帖子说,如果有很多矩阵乘法和减法运算,使用多线程设置会有所帮助。我对下面的数学知之甚少,但我想我的模型中有很多这样的矩阵运算?但是,将两个参数从 0 设置为 1 只会在 10 分钟的任务中看到 1 分钟的减速。
  3. 为什么多线程可能是不可重现结果的来源?请参阅结果无法在 Python 中使用 Keras 和 TensorFlow 重现。这是我在做科学实验时需要使用单线程的主要原因。当然,随着时间的推移,tensorflow 一直在改进,为什么在发布中没有解决这个问题?

提前谢谢了

tensorflow

4
推荐指数
1
解决办法
4233
查看次数

解读tensorflow benchmark工具的结果

Tensorflow 有几个基准测试工具:

对于.pb 模型.tflite 模型

我对 .pb 基准工具的参数有几个问题:

  1. num_threads相关的单线程实验或通过使用tensorflow内螺纹平行运行次数?
  2. 为桌面构建工具时是否可以使用 GPU,即不适用于移动设备?如果是这样,如何确保不使用GPU?

还有一些关于结果解释的问题:

  1. 什么是count在结果输出?如何Timings (microseconds): count=相关--max_num_runs的参数?

例子:

Run --num_threads=-1 --max_num_runs=1000:
    2019-03-20 14:30:33.253584: I tensorflow/core/util/stat_summarizer.cc:85] Timings (microseconds): count=1000 first=3608 curr=3873 min=3566 max=8009 avg=3766.49 std=202
    2019-03-20 14:30:33.253584: I tensorflow/core/util/stat_summarizer.cc:85] Memory (bytes): count=1000 curr=3301344(all same)
    2019-03-20 14:30:33.253591: I tensorflow/core/util/stat_summarizer.cc:85] 207 nodes observed
    2019-03-20 14:30:33.253597: I tensorflow/core/util/stat_summarizer.cc:85]
    2019-03-20 14:30:33.378352: I tensorflow/tools/benchmark/benchmark_model.cc:636] FLOPs estimate: 116.65M
    2019-03-20 14:30:33.378390: I tensorflow/tools/benchmark/benchmark_model.cc:638] FLOPs/second: 46.30B

Run --num_threads=1 --max_num_runs=1000:
    2019-03-20 …
Run Code Online (Sandbox Code Playgroud)

benchmarking tensorflow tensorflow-lite

0
推荐指数
1
解决办法
1023
查看次数