日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

keras用cpu加速_在训练某些网络时,Keras(Tensorflow后端)在GPU上比在CPU上慢CPU

發(fā)布時(shí)間:2024/9/27 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 keras用cpu加速_在训练某些网络时,Keras(Tensorflow后端)在GPU上比在CPU上慢CPU 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

我很難理解GPU和CPU速度與小尺寸網(wǎng)絡(luò)(CPU有時(shí)更快)相似的原因,而GPU更快更大尺寸的網(wǎng)絡(luò)。問題底部的代碼在i7-6700k上以103.7s運(yùn)行,但是當(dāng)使用tensorflow-gpu時(shí),代碼運(yùn)行時(shí)間為29.5秒。然而,當(dāng)我訓(xùn)練一個(gè)擁有100個(gè)隱藏神經(jīng)元的網(wǎng)絡(luò)時(shí),而不是像下面的例子那樣使用1000,我使用GPU時(shí)約20秒,使用CPU約15秒。在訓(xùn)練某些網(wǎng)絡(luò)時(shí),Keras(Tensorflow后端)在GPU上比在CPU上慢CPU

我讀過CPU-> GPU傳輸需要很長時(shí)間的另一個(gè)堆棧溢出答案,我假設(shè)這是參考在GPU上加載數(shù)據(jù)示例。

有人可以解釋為什么會出現(xiàn)這種情況,并且可能引用了一些可以使速度最大化的代碼更改?

import numpy as np

import tensorflow as tf

import keras

from keras.models import Sequential

from keras.utils import np_utils

from keras.layers.core import Dense, Activation, Flatten, Dropout

from sklearn.preprocessing import normalize

## Importing the MNIST dataset using Keras

from keras.datasets import mnist

(X_train, y_train), (X_test, y_test) = mnist.load_data()

# reshape for vector input

N, x, y = X_train.shape

X_train = normalize(np.reshape(X_train, (N, x * y)))

N, x, y = X_test.shape

X_test = normalize(np.reshape(X_test, (N, x * y)))

# one-hot encoding

y_train = np_utils.to_categorical(y_train)

y_test = np_utils.to_categorical(y_test)

model = Sequential()

model.add(Dense(output_dim=750, input_dim=784))

model.add(Activation('relu'))

model.add(Dropout(0.2))

model.add(Dense(150))

model.add(Activation('relu'))

model.add(Dropout(0.2))

model.add(Dense(50))

model.add(Activation('relu'))

model.add(Dropout(0.2))

model.add(Dense(50))

model.add(Activation('relu'))

model.add(Dropout(0.2))

model.add(Dense(10))

model.add(Activation('softmax'))

model.compile(loss='categorical_crossentropy', optimizer='Nadam', metrics=['accuracy'])

fit = model.fit(X_train, y_train, batch_size=128, nb_epoch=10, verbose=0)

## Printing the accuracy of our model, according to the loss function specified in model.compile above

score = model.evaluate(X_test, y_test, verbose=0)

print('Test score:', score[0])

print('Test accuracy:', score[1])

+1

您使用的是什么GPU?請注意,要完全飽和頂級GPU,需要數(shù)以萬計(jì)的線程。假設(shè)每個(gè)線程處理一個(gè)神經(jīng)元的計(jì)算,一個(gè)具有100個(gè)神經(jīng)元的系統(tǒng)將沒有充分利用GPU。相反,如果要將神經(jīng)元數(shù)量增加到10K,那么GPU相對于CPU的相對優(yōu)勢可能會進(jìn)一步增加。 –

+0

哎呀,完全忘記了在答案中包含這一點(diǎn)。我有一個(gè)GTX 1070.我明白了。這是有道理的 –

+0

我實(shí)際上注意到我的GTX 1070 GPU上的相同行為。我沒有看到在CPU(i7-7700)和GPU上運(yùn)行我的模型(與您使用的尺寸類似)。需要嘗試增加網(wǎng)絡(luò)評估差異的能力 –

總結(jié)

以上是生活随笔為你收集整理的keras用cpu加速_在训练某些网络时,Keras(Tensorflow后端)在GPU上比在CPU上慢CPU的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。