标签: tensorflow

如何在CPU上运行Tensorflow

我在Ubuntu 14.04上安装了GPU版本的tensorflow.

我在GPU服务器上,tensorflow可以访问可用的GPU.

我想在CPU上运行tensorflow.

通常情况下,我可以使用env CUDA_VISIBLE_DEVICES=0GPU上运行.0.

如何在CPU之间进行选择?

我没有兴趣重写我的代码 with tf.device("/cpu:0"):

python tensorflow

102
推荐指数
8
解决办法
11万
查看次数

在Tensorflow中,获取图表中所有张量的名称

我用Tensorflow和创造神经网络skflow; 出于某种原因,我想获得给定输入的一些内部张量的值,所以我正在使用myClassifier.get_layer_value(input, "tensorName"),myClassifier作为一个skflow.estimators.TensorFlowEstimator.

但是,我发现很难找到张量名称的正确语法,即使知道它的名字(我在操作和张量之间感到困惑),所以我使用tensorboard绘制图形并查找名称.

有没有办法在不使用张量板的情况下枚举图中的所有张量?

python tensorflow tensorboard skflow

101
推荐指数
6
解决办法
11万
查看次数

TensorFlow,保存模型后为什么有3个文件?

阅读完文档后,我保存了一个模型TensorFlow,这是我的演示代码:

# Create some variables.
v1 = tf.Variable(..., name="v1")
v2 = tf.Variable(..., name="v2")
...
# Add an op to initialize the variables.
init_op = tf.global_variables_initializer()

# Add ops to save and restore all the variables.
saver = tf.train.Saver()

# Later, launch the model, initialize the variables, do some work, save the
# variables to disk.
with tf.Session() as sess:
  sess.run(init_op)
  # Do some work with the model.
  ..
  # Save the variables to disk.
  save_path = …
Run Code Online (Sandbox Code Playgroud)

tensorflow

101
推荐指数
3
解决办法
6万
查看次数

sparse_softmax_cross_entropy_with_logits和softmax_cross_entropy_with_logits有什么区别?

我最近遇到了tf.nn.sparse_softmax_cross_entropy_with_logits,我无法弄清楚与tf.nn.softmax_cross_entropy_with_logits相比有什么不同.

是训练矢量唯一的区别y必须是独热编码使用时sparse_softmax_cross_entropy_with_logits

阅读API,我找不到任何其他差异softmax_cross_entropy_with_logits.但是为什么我们需要额外的功能呢?

如果提供单热编码训练数据/向量,不应softmax_cross_entropy_with_logits产生相同的结果sparse_softmax_cross_entropy_with_logits吗?

neural-network tensorflow softmax cross-entropy

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

如何为GradientDescentOptimizer设置自适应学习速率?

我正在使用TensorFlow来训练神经网络.这是我初始化的方式GradientDescentOptimizer:

init = tf.initialize_all_variables()
sess = tf.Session()
sess.run(init)

mse        = tf.reduce_mean(tf.square(out - out_))
train_step = tf.train.GradientDescentOptimizer(0.3).minimize(mse)
Run Code Online (Sandbox Code Playgroud)

这里的问题是我不知道如何为学习率或衰减值设置更新规则.

我如何在这里使用自适应学习率?

python tensorflow

96
推荐指数
4
解决办法
10万
查看次数

了解TensorBoard(重量)直方图

查看和理解TensorBoard中的标量值非常简单.但是,目前还不清楚如何理解直方图.

例如,它们是我的网络权重的直方图.

在此输入图像描述

(由于sunside修复了一个bug) 在此输入图像描述 解释这些的最佳方法是什么?第1层重量看起来大致平坦,这意味着什么?

我在这里添加了网络构造代码.

X = tf.placeholder(tf.float32, [None, input_size], name="input_x")
x_image = tf.reshape(X, [-1, 6, 10, 1])
tf.summary.image('input', x_image, 4)

# First layer of weights
with tf.name_scope("layer1"):
    W1 = tf.get_variable("W1", shape=[input_size, hidden_layer_neurons],
                         initializer=tf.contrib.layers.xavier_initializer())
    layer1 = tf.matmul(X, W1)
    layer1_act = tf.nn.tanh(layer1)
    tf.summary.histogram("weights", W1)
    tf.summary.histogram("layer", layer1)
    tf.summary.histogram("activations", layer1_act)

# Second layer of weights
with tf.name_scope("layer2"):
    W2 = tf.get_variable("W2", shape=[hidden_layer_neurons, hidden_layer_neurons],
                         initializer=tf.contrib.layers.xavier_initializer())
    layer2 = tf.matmul(layer1_act, W2)
    layer2_act = tf.nn.tanh(layer2)
    tf.summary.histogram("weights", W2)
    tf.summary.histogram("layer", layer2)
    tf.summary.histogram("activations", layer2_act)

# Third layer of weights
with tf.name_scope("layer3"): …
Run Code Online (Sandbox Code Playgroud)

histogram tensorflow tensorboard

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

为什么TensorFlow 2比TensorFlow 1慢得多?

许多用户都将其作为切换到Pytorch的原因,但是我还没有找到牺牲/最渴望的实用质量,速度和执行力的理由/解释。

以下是代码基准测试性能,即TF1与TF2的对比-TF1的运行速度提高了47%至276%

我的问题是:在图形或硬件级别上,什么导致如此显着的下降?


寻找详细的答案-已经熟悉广泛的概念。相关的Git

规格:CUDA 10.0.130,cuDNN 7.4.2,Python 3.7.4,Windows 10,GTX 1070


基准测试结果


UPDATE:禁用每下面的代码不会急于执行没有帮助。但是,该行为是不一致的:有时以图形方式运行有很大帮助,而其他时候其运行速度相对于Eager

由于TF开发人员没有出现在任何地方,因此我将自己进行调查-可以跟踪相关的Github问题的进展。

更新2:分享大量实验结果,并附有解释;应该在今天完成。


基准代码

# use tensorflow.keras... to benchmark tf.keras; used GPU for all above benchmarks
from keras.layers import Input, Dense, LSTM, Bidirectional, Conv1D
from keras.layers import Flatten, Dropout
from keras.models import Model
from keras.optimizers import Adam
import keras.backend as K
import numpy as np
from time import time

batch_shape = (32, 400, 16) …
Run Code Online (Sandbox Code Playgroud)

python performance-testing keras tensorflow tensorflow2.0

94
推荐指数
2
解决办法
4140
查看次数

TensorFlow从文件保存到/加载图形

从我到目前为止收集的内容来看,有几种不同的方法可以将TensorFlow图转储到文件中,然后将其加载到另一个程序中,但我无法找到有关它们如何工作的明确示例/信息.我已经知道的是:

  1. 使用a将模型的变量保存到检查点文件(.ckpt)中,tf.train.Saver()然后将其恢复(源代码)
  2. 将模型保存到.pb文件中并使用tf.train.write_graph()tf.import_graph_def()()加载回来
  3. 从.pb文件加载模型,重新训练并使用Bazel将其转储到新的.pb文件中(源代码)
  4. 冻结图形以将图形和权重保存在一起()
  5. 使用as_graph_def()保存模型,并为权重/变量,它们映射到常数()

但是,我无法澄清有关这些不同方法的几个问题:

  1. 关于检查点文件,他们只保存模型的训练权重吗?可以将检查点文件加载到新程序中,并用于运行模型,还是仅仅用作在特定时间/阶段将权重保存在模型中的方法?
  2. 关于tf.train.write_graph(),是否也保存了权重/变量?
  3. 关于Bazel,它是否只能从.pb文件中保存/加载以进行再培训?有一个简单的Bazel命令只是为了将图形转储到.pb中吗?
  4. 关于冻结,可以使用冻结图加载tf.import_graph_def()吗?
  5. TensorFlow的Android演示从.pb文件加载Google的Inception模型.如果我想替换我自己的.pb文件,我该怎么做呢?我需要更改任何本机代码/方法吗?
  6. 一般来说,所有这些方法之间究竟有什么区别?或者更广泛地说,/.as_graph_def()keeppt/.pb有什么区别?

简而言之,我正在寻找的方法是将图形(如,各种操作等)及其权重/变量保存到文件中,然后可以将其用于将图形和权重加载到另一个程序中,使用(不一定继续/再培训).

关于这个主题的文档不是很简单,所以任何答案/信息将不胜感激.

python protocol-buffers tensorflow

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

我可以在gpu上运行Keras模型吗?

我正在运行Keras模型,提交截止日期为36小时,如果我在cpu上训练我的模型需要大约50个小时,有没有办法在gpu上运行Keras?

我正在使用Tensorflow后端并在我的Jupyter笔记本上运行它,没有安装anaconda.

python jupyter keras tensorflow

93
推荐指数
3
解决办法
15万
查看次数

如何在TensorFlow中添加正则化?

我在使用TensorFlow实现的许多可用神经网络代码中发现,正则化术语通常通过手动向损失值添加附加项来实现.

我的问题是:

  1. 有没有比手动更优雅或推荐的正规化方法?

  2. 我也发现get_variable有一个论点regularizer.该如何使用?根据我的观察,如果我们将正则化器传递给它(例如tf.contrib.layers.l2_regularizer,表示正则化术语的张量将被计算并添加到名为的图形集合中tf.GraphKeys.REGULARIZATOIN_LOSSES.TensorFlow是否会自动使用该集合(例如,在训练时由优化器使用)?或者是否应该自己使用该系列?

python neural-network deep-learning tensorflow

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