标签: tensorflow

禁用Tensorflow调试信息

通过调试信息,我的意思是TensorFlow在我的终端中显示有关加载的库和找到的设备等,而不是python错误.

I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcudnn.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcurand.so locally
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:900] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
I tensorflow/core/common_runtime/gpu/gpu_init.cc:102] Found device 0 with properties: 
name: Graphics Device
major: 5 minor: …
Run Code Online (Sandbox Code Playgroud)

python tensorflow

131
推荐指数
9
解决办法
9万
查看次数

如何在tensorflow中获取当前可用的GPU?

我有计划使用分布式TensorFlow,我看到TensorFlow可以使用GPU进行培训和测试.在群集环境中,每台计算机可能有0个或1个或更多GPU,我想在尽可能多的计算机上运行我的TensorFlow图形到GPU.

我发现在运行tf.Session()TensorFlow时会在日志消息中提供有关GPU的信息,如下所示:

I tensorflow/core/common_runtime/gpu/gpu_init.cc:126] DMA: 0 
I tensorflow/core/common_runtime/gpu/gpu_init.cc:136] 0:   Y 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:838] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 1080, pci bus id: 0000:01:00.0)
Run Code Online (Sandbox Code Playgroud)

我的问题是如何从TensorFlow获取有关当前可用GPU的信息?我可以从日志中获取加载的GPU信息,但我希望以更复杂的程序化方式完成.我也可以故意使用CUDA_VISIBLE_DEVICES环境变量限制GPU,所以我不想知道从OS内核获取GPU信息的方法.

简而言之,如果机器中有两个可用的GPU ,我希望这样的函数tf.get_available_gpus()将返回['/gpu:0', '/gpu:1'].我该如何实现呢?

python gpu tensorflow

131
推荐指数
9
解决办法
16万
查看次数

tf.nn.conv2d在tensorflow中做了什么?

我在tf.nn.conv2d 这里看一下tensorflow的文档.但我无法理解它的作用或它想要实现的目标.它在文档上说,

#1:将滤镜展平为具有形状的二维矩阵

[filter_height * filter_width * in_channels, output_channels].

那现在做什么?是元素乘法还是纯矩阵乘法?我也无法理解文档中提到的其他两点.我在下面写了:

#2:从输入张量中提取图像块以形成虚拟的形状张量

[batch, out_height, out_width, filter_height * filter_width * in_channels].

#3:对于每个补丁,右对乘滤波器矩阵和图像补丁矢量.

如果有人能给出一个例子,一段代码(非常有用)可能并解释那里发生了什么以及为什么操作是这样的,这将是非常有用的.

我尝试过编写一小部分并打印出操作的形状.不过,我无法理解.

我试过这样的事情:

op = tf.shape(tf.nn.conv2d(tf.random_normal([1,10,10,10]), 
              tf.random_normal([2,10,10,10]), 
              strides=[1, 2, 2, 1], padding='SAME'))

with tf.Session() as sess:
    result = sess.run(op)
    print(result)
Run Code Online (Sandbox Code Playgroud)

我理解卷积神经网络的点点滴滴.我在这里研究过它们.但是,张量流的实现并不是我的预期.所以它提出了这个问题.

编辑:所以,我实现了一个更简单的代码.但我无法弄清楚发生了什么.我的意思是结果是这样的.如果有人能告诉我什么过程产生这个输出,那将是非常有帮助的.

input = tf.Variable(tf.random_normal([1,2,2,1]))
filter = tf.Variable(tf.random_normal([1,1,1,1]))

op = tf.nn.conv2d(input, filter, strides=[1, 1, 1, 1], padding='SAME')
init = tf.initialize_all_variables()
with tf.Session() as sess:
    sess.run(init)

    print("input")
    print(input.eval())
    print("filter")
    print(filter.eval())
    print("result")
    result = sess.run(op) …
Run Code Online (Sandbox Code Playgroud)

neural-network tensorflow

125
推荐指数
4
解决办法
7万
查看次数

TensorFlow中Variable和get_variable之间的区别

据我所知,Variable是制作变量的默认操作,get_variable主要用于权重分享.

一方面,有些人建议在需要变量时使用get_variable而不是原始Variable操作.另一方面,我只是get_variable在TensorFlow的官方文档和演示中看到任何使用.

因此,我想知道如何正确使用这两种机制的一些经验法则.有没有"标准"原则?

python tensorflow

116
推荐指数
3
解决办法
4万
查看次数

Keras,如何获得每一层的输出?

我已经使用CNN训练了二进制分类模型,这是我的代码

model = Sequential()
model.add(Convolution2D(nb_filters, kernel_size[0], kernel_size[1],
                        border_mode='valid',
                        input_shape=input_shape))
model.add(Activation('relu'))
model.add(Convolution2D(nb_filters, kernel_size[0], kernel_size[1]))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=pool_size))
# (16, 16, 32)
model.add(Convolution2D(nb_filters*2, kernel_size[0], kernel_size[1]))
model.add(Activation('relu'))
model.add(Convolution2D(nb_filters*2, kernel_size[0], kernel_size[1]))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=pool_size))
# (8, 8, 64) = (2048)
model.add(Flatten())
model.add(Dense(1024))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(2))  # define a binary classification problem
model.add(Activation('softmax'))

model.compile(loss='categorical_crossentropy',
              optimizer='adadelta',
              metrics=['accuracy'])
model.fit(x_train, y_train,
          batch_size=batch_size,
          nb_epoch=nb_epoch,
          verbose=1,
          validation_data=(x_test, y_test))
Run Code Online (Sandbox Code Playgroud)

在这里,我想像TensorFlow一样获得每一层的输出,我该怎么做?

python deep-learning keras tensorflow

115
推荐指数
9
解决办法
12万
查看次数

找不到满足需求张量流的版本

我安装了最新版本的Python (3.6.4 64-bit)和最新版本的PyCharm (2017.3.3 64-bit).然后我在PyCharm(Numpy,Pandas,...)中安装了一些模块,但是当我尝试安装Tensorflow时它没有安装,我收到了错误消息:

找不到满足要求tensorflow的版本(来自版本:)没有找到tensorflow的匹配分布

然后我尝试从命令提示符安装tensorflow,我得到了相同的错误消息.然而,我确实安装了tflearn.

我还安装了Python 2.7,但我又得到了相同的错误消息.我搜索了这个错误并尝试了一些建议给其他人的东西,但没有任何效果(包括安装Flask).

如何安装Tensorflow?谢谢.

python pip python-2.7 python-3.x tensorflow

114
推荐指数
15
解决办法
19万
查看次数

无法在仅 tensorflow CPU 安装上加载动态库“cudart64_101.dll”

我刚刚通过安装了最新版本的 Tensorflow pip install tensorflow,每当我运行程序时,我都会收到日志消息:

W tensorflow/stream_executor/platform/default/dso_loader.cc:55] 无法加载动态库“cudart64_101.dll”;dlerror: 找不到 cudart64_101.dll

这很糟糕吗?如何修复错误?

python python-3.x keras tensorflow tensorflow2.0

113
推荐指数
8
解决办法
25万
查看次数

Tensorflow Strides Argument

我想了解的进步在tf.nn.avg_pool,tf.nn.max_pool,tf.nn.conv2d说法.

文件反复说

strides:长度> = 4的整数列表.输入张量的每个维度的滑动窗口的步幅.

我的问题是:

  1. 4+整数中的每一个代表什么?
  2. 为什么他们必须有步幅[0] =步幅[3] = 1?
  3. 这个例子中我们看到tf.reshape(_X,shape=[-1, 28, 28, 1]).为什么-1?

遗憾的是,使用-1重新整形的文档中的示例并不能很好地转换为这种情况.

python convolution neural-network conv-neural-network tensorflow

112
推荐指数
3
解决办法
4万
查看次数

TensorFlow中tf.app.flags的目的是什么?

我正在阅读Tensorflow中的一些示例代码,我发现以下代码

flags = tf.app.flags
FLAGS = flags.FLAGS
flags.DEFINE_float('learning_rate', 0.01, 'Initial learning rate.')
flags.DEFINE_integer('max_steps', 2000, 'Number of steps to run trainer.')
flags.DEFINE_integer('hidden1', 128, 'Number of units in hidden layer 1.')
flags.DEFINE_integer('hidden2', 32, 'Number of units in hidden layer 2.')
flags.DEFINE_integer('batch_size', 100, 'Batch size.  '
                 'Must divide evenly into the dataset sizes.')
flags.DEFINE_string('train_dir', 'data', 'Directory to put the training data.')
flags.DEFINE_boolean('fake_data', False, 'If true, uses fake data '
                 'for unit testing.')
Run Code Online (Sandbox Code Playgroud)

tensorflow/tensorflow/g3doc/tutorials/mnist/fully_connected_feed.py

但我找不到任何关于这种用法的文档tf.app.flags.

我发现这个标志的实现在 tensorflow/tensorflow/python/platform/default/_flags.py

显然,这tf.app.flags在某种程度上用于配置网络,那么为什么它不在API文档中呢?谁能解释一下这里发生了什么?

python tensorflow

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

TensorFlow中的步骤和时期有什么区别?

在大多数模型中,有一个步骤参数指示在数据上运行的步骤数.但是我在大多数实际用法中看到,我们也执行拟合函数N个时期.

运行1000步与1纪元和运行100步与10纪元有什么区别?哪一个在实践中更好?连续时期之间的任何逻辑变化?数据改组?

machine-learning tensorflow

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