【Windows】GPU에서 Keras를 이용하는 메모 【Tensorflow-GPU】

구성



OS: Windows10 Home
CPU:Intel제 Corei7-4790
GPU: GTX1660 Super(NVIDIA제의 GPU라면 뭐든 좋다)
Python: 3.6.10
Keras: 2.2.4
Tensorflow: 1.14.0
Cuda: 10.0
numpy: 1.16.4
sklearn: 0.22.2

1. Windows Visual Studio C++ 설치



설치 페이지
htps : // / cs. 미 c 로소 ft. 코 m / 그럼 jp / ぃ ぃ ああ ls つぢ お / いん た た l / い ん s た lゔ ぃ w = vs - 2019
여기에서 VisualStudio를 설치합니다.
이번에는 2019년판을 설치.
설치 시 "C++ 워크로드를 사용한 데스크톱 개발"을 선택하십시오.

2. NVIDIA Driver 설치



htps //w w. 응아아. 이. jp / 드 w 응아 d / 어서 x. 아 spx?ぁg=jp
이 URL에서 GPU를 선택하고 NVIDIA 드라이버를 다운로드합니다.

다운로드한 exe 파일을 실행하여 설치합니다.

추가 .CUDA toolkit 다운로드 및 설치



3.cuDNN 다운로드



htps : //로 ゔぇぺぺr. 응아아. 코 m / rdp / 쿠 드 - w w ぉ 아 d
이 사이트에서 'cuDNN v7.6.5 for CUDA 10.0' 다운로드

그런 다음 폴더에서 "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v.10.0"을 엽니다.
압축을 푼 폴더 안에 bin,include,lib와 세 개의 폴더가 있습니다.
bin 안의 파일은 bin 폴더 안에, include 안의 파일은 include 폴더 안에, lib 안의 파일은 lib 폴더 안에 덧쓰기 보존해 주세요.

4.tensorflow-gpu 설치



먼저 일반 tensorflow가 설치된 경우,
제거한 다음 설치해야 합니다.
pip uninstall tensorflow
pip install numpy==1.16.4
pip install tensorflow-gpu==1.14.0
pip install keras==2.2.4
pip install sklearn

그래프 묘화나 데이터 처리에 사용할 것 같은 것도 아울러 인스톨 해 둔다.
아래는 설치하지 않아도 됩니다.
pip install matplotlib
pip install pandas
pip install pillow
pip install opencv-python
pip install opencv-contrib-python

5.GPU 버전 Tensorflow가 인식하는지 확인


from tensorflow.python.client import device_lib
device_lib.list_local_devices()

장문이 출력된다고 생각합니다만,
그 중 한 줄에 device_type: "GPU"name: "/device:GPU:0" 등의 문자가 있으면 OK입니다.

6. 역시 시험은 MNIST에서.



test라고 하면 MNIST.
MNIST로 속도 검증합니다.
import time
import keras
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers import Dense, Dropout, Flatten
from keras.layers import Conv2D, MaxPooling2D
from keras.optimizers import RMSprop

(x_train, y_train), (x_test, y_test) = mnist.load_data()

model = Sequential()
model.add(Conv2D(32, kernel_size=(3, 3), activation='relu', input_shape=(28, 28, 1)))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(10, activation='softmax'))

x_train = x_train.reshape(x_train.shape[0], 28, 28, 1)
x_test = x_test.reshape(x_test.shape[0], 28, 28, 1)

x_train = x_train.astype('float32')
x_test = x_test.astype('float32')
x_train /= 255
x_test /= 255

y_train = keras.utils.to_categorical(y_train, 10)
y_test = keras.utils.to_categorical(y_test, 10)

start_time = time.time()#スタート時間計測

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

history = model.fit(x_train, y_train,
                    batch_size=128,
                    epochs=10,
                    verbose=1,
                    validation_data=(x_test, y_test))

score = model.evaluate(x_test, y_test, verbose=0)
print('loss:', score[0])
print('accuracy:', score[1])

end_time = time.time() - start_time#終了時間を計測
print("学習時間:", str(round(end_time, 3)), "秒でした。")

GPU 버전의 출력 결과: 48.13초
CPU 버전에서의 출력 결과: 530.26초

10배 이상도 속도가 달랐습니다! !

끝에



개인으로 DeepLearning하고 싶다는 생각에서 오래된 PC에 그라보 돌진해 AI 머신을 세팅했습니다.
또, 돈이 쌓이면 더 메모리가 있는 GPU나 2장 찌르기를 하고 싶다고 생각합니다.
그럼 또.

좋은 웹페이지 즐겨찾기