当前位置:   article > 正文

在Kaggle上免费使用GPU_kaggle提供什么gpu

kaggle提供什么gpu

Intro

Kaggle提供免费访问内核中的NVidia K80 GPU。该基准测试表明,在深度学习模型的训练过程中,为您的内核启用GPU可实现12.5倍的加速。
这个内核是用GPU运行的。我将运行时间与在CPU上训练相同模​​型内核的运行时间进行比较。
GPU的总运行时间为994秒。仅具有CPU的内核的总运行时间为13,419秒。这是一个12.5倍的加速(只有一个CPU的总运行时间是13.5倍)。
将比较仅限于模型训练,我们看到CPU从13,378秒减少到GPU的950秒。因此,模型训练加速有点超过13倍。
确切的加速度取决于许多因素,包括模型架构,批量大小,输入管道复杂性等。也就是说,GPU在Kaggle内核中开辟了很多可能性。
如果您想将这些GPU用于深度学习项目,您可能会发现我们的深度学习课程是最快速的路径,以便您可以运行自己的项目。我们还在我们的数据集平台上添加了新的图像处理数据集,我们总是有许多竞赛让您使用这些免费的GPU来尝试新的想法。

以下文本显示了如何启用GPU并提供有关基准测试的详细信息。

Adding a GPU

我们通过首先打开内核控件来设置此内核以在GPU上运行。

 

选择“设置”项卡。 然后选中启用GPU的复选框。 验证GPU是否已连接到控制台栏中的内核,它应在资源使用情况指标旁边显示GPU ON。

 

GPU支持的实例具有较少的CPU功率和RAM。 而且,许多数据科学库无法利用GPU。 因此,GPU对某些任务很有价值(特别是在使用TensorFlow,Keras和PyTorch等深度学习库时)。 但是对于大多数其他任务而言,如果没有GPU,你会更好。

The data

该数据集包含美国手语中29种不同符号的图像。 这些是26个字母(A到Z)加上空格,删除和无标记。 我们的模型将查看这些图像,并学习如何对每张图像中的符号进行分类。

以下示例图片

[1]

  1. # Imports for Deep Learning
  2. from keras.layers import Conv2D, Dense, Dropout, Flatten
  3. from keras.models import Sequential
  4. from keras.preprocessing.image import ImageDataGenerator
  5. # ensure consistency across runs
  6. from numpy.random import seed
  7. seed(1)
  8. from tensorflow import set_random_seed
  9. set_random_seed(2)
  10. # Imports to view data
  11. import cv2
  12. from glob import glob
  13. from matplotlib import pyplot as plt
  14. from numpy import floor
  15. import random
  16. def plot_three_samples(letter):
  17. print("Samples images for letter " + letter)
  18. base_path = '../input/asl_alphabet_train/asl_alphabet_train/'
  19. img_path = base_path + letter + '/**'
  20. path_contents = glob(img_path)
  21. plt.figure(figsize=(16,16))
  22. imgs = random.sample(path_contents, 3)
  23. plt.subplot(131)
  24. plt.imshow(cv2.imread(imgs[0]))
  25. plt.subplot(132)
  26. plt.imshow(cv2.imread(imgs[1]))
  27. plt.subplot(133)
  28. plt.imshow(cv2.imread(imgs[2]))
  29. return
  30. plot_three_samples('A')
Samples images for letter B

Data Processing Set-Up

[3]

  1. data_dir = "../input/asl_alphabet_train/asl_alphabet_train"
  2. target_size = (64, 64)
  3. target_dims = (64, 64, 3) # add channel for RGB
  4. n_classes = 29
  5. val_frac = 0.1
  6. batch_size = 64
  7. data_augmentor = ImageDataGenerator(samplewise_center=True,
  8. samplewise_std_normalization=True,
  9. validation_split=val_frac)
  10. train_generator = data_augmentor.flow_from_directory(data_dir, target_size=target_size, batch_size=batch_size, shuffle=True, subset="training")
  11. val_generator = data_augmentor.flow_from_directory(data_dir, target_size=target_size, batch_size=batch_size, subset="validation")

Model Specification

[4]

  1. my_model = Sequential()
  2. my_model.add(Conv2D(64, kernel_size=4, strides=1, activation='relu', input_shape=target_dims))
  3. my_model.add(Conv2D(64, kernel_size=4, strides=2, activation='relu'))
  4. my_model.add(Dropout(0.5))
  5. my_model.add(Conv2D(128, kernel_size=4, strides=1, activation='relu'))
  6. my_model.add(Conv2D(128, kernel_size=4, strides=2, activation='relu'))
  7. my_model.add(Dropout(0.5))
  8. my_model.add(Conv2D(256, kernel_size=4, strides=1, activation='relu'))
  9. my_model.add(Conv2D(256, kernel_size=4, strides=2, activation='relu'))
  10. my_model.add(Flatten())
  11. my_model.add(Dropout(0.5))
  12. my_model.add(Dense(512, activation='relu'))
  13. my_model.add(Dense(n_classes, activation='softmax'))
  14. my_model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=["accuracy"])

Model Fitting

[5]

my_model.fit_generator(train_generator, epochs=5, validation_data=val_generator)
  1. Epoch 1/5
  2. 1224/1224 [==============================] - 206s 169ms/step - loss: 1.1439 - acc: 0.6431 - val_loss: 0.5824 - val_acc: 0.8126
  3. Epoch 2/5
  4. 1224/1224 [==============================] - 179s 146ms/step - loss: 0.2429 - acc: 0.9186 - val_loss: 0.5081 - val_acc: 0.8492
  5. Epoch 3/5
  6. 1224/1224 [==============================] - 182s 148ms/step - loss: 0.1576 - acc: 0.9495 - val_loss: 0.5181 - val_acc: 0.8685
  7. Epoch 4/5
  8. 1224/1224 [==============================] - 180s 147ms/step - loss: 0.1417 - acc: 0.9554 - val_loss: 0.4139 - val_acc: 0.8786
  9. Epoch 5/5
  10. 1224/1224 [==============================] - 181s 148ms/step - loss: 0.1149 - acc: 0.9647 - val_loss: 0.4319 - val_acc: 0.8948
  11. <keras.callbacks.History at 0x7f5cbb6537b8>

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/362395
推荐阅读
相关标签
  

闽ICP备14008679号