相关疑难解决方法(0)

在训练LSTM/RNN模型时,为什么我的GPU比CPU慢?

我的机器有以下规格:

CPU:Xeon E5-1620 v4

GPU:Titan X(Pascal)

Ubuntu 16.04

Nvidia车手375.26

CUDA取得8.0

cuDNN 5.1

我已经使用Tensorflow作为支持参考的以下Keras示例进行了基准测试:

SCRIPT NAME                  GPU       CPU
stated_lstm.py               5sec      5sec 
babi_rnn.py                  10sec     12sec
imdb_bidirectional_lstm.py   240sec    116sec
imbd_lstm.py                 113sec    106sec
Run Code Online (Sandbox Code Playgroud)

我的gpu显然在非lstm模型中执行我的cpu.

SCRIPT NAME                  GPU       CPU
cifar10_cnn.py               12sec     123sec
imdb_cnn.py                  5sec      119sec
mnist_cnn.py                 3sec      47sec 
Run Code Online (Sandbox Code Playgroud)

还有其他人经历过这个吗?

nvidia machine-learning keras tensorflow

22
推荐指数
4
解决办法
2万
查看次数

在gpu上预加载整个数据集以用于训练Keras模型

我有一个特定的情况,网络相对较小,对于收敛和泛化问题,我应该保持小批量(例如256),这导致每个时期处理数百个批次.

不幸的是,在这种情况下,批量加载和损失计算成为瓶颈(正如timeline工具告诉我的那样).

在tensorflow中,您可以编写类似这样的内容来加载gpu上的数据:

with tf.device('/gpu:0'):
    train_data = tf.constant(train_data_numpy)
Run Code Online (Sandbox Code Playgroud)

但如果我传递train_data给Keras Model.predictModel.fit函数,我会收到以下错误:

keras/engine/training.pyc in predict(self, x, batch_size, verbose)
   1515         f = self.predict_function
   1516         return self._predict_loop(f, ins,
-> 1517                                   batch_size=batch_size, verbose=verbose)
   1518 
   1519     def train_on_batch(self, x, y,

keras/engine/training.pyc in _predict_loop(self, f, ins, batch_size, verbose)
   1129         if verbose == 1:
   1130             progbar = Progbar(target=samples)
-> 1131         batches = _make_batches(samples, batch_size)
   1132         index_array = np.arange(samples)
   1133         for batch_index, (batch_start, batch_end) in enumerate(batches):

keras/engine/training.pyc in _make_batches(size, batch_size)
    368         A …
Run Code Online (Sandbox Code Playgroud)

python keras tensorflow

8
推荐指数
1
解决办法
1065
查看次数

Keras:使用的实际GPU内存量

我正在使用带有Tensorflow后端的Keras并且查看nvidia-smi不足以了解当前网络架构需要多少内存,因为Tensorflow似乎只是分配了所有可用的内存.

那么问题是如何找出真正的GPU内存使用情况?

python linux keras tensorflow

7
推荐指数
1
解决办法
5852
查看次数

标签 统计

keras ×3

tensorflow ×3

python ×2

linux ×1

machine-learning ×1

nvidia ×1