[Перевод] Бесплатное руководство по графическому процессору Google Colab

Google Программа перевода самородков Keras
[Перевод] Бесплатное руководство по графическому процессору Google Colab

Бесплатное руководство по графическому процессору Google Colab

Теперь вы можете использоватьGoogle Colaboratory(с участиемБесплатная видеокарта Tesla K80)использоватьKeras,TensorflowиPyTorchразвиватьглубокое обучениепрограмма.

Всем привет! Я покажу вам, как использоватьБесплатный облачный сервис Google для разработчиков искусственного интеллекта — Google Colab. В Colab вы можете использоватьбесплатный графический процессордля разработки приложений глубокого обучения.

Спасибо KDnuggets!

Я рад сообщить, что этот пост в блоге был выбран Серебряным постом KDnuggets в феврале 2018 года! С содержанием статьи можно ознакомиться вKDnuggetsВидеть.

Что такое Google Colab?

Google Colab — это бесплатный облачный сервис, и теперь он также поддерживает бесплатные графические процессоры!

Ты сможешь:

  • улучшить свойPythonНавыки языкового кодирования.
  • использоватьKeras,TensorFlow,PyTorchиOpenCVи другие популярные библиотеки для разработки приложений глубокого обучения.

Наиболее важные отличия Colab от других бесплатных облачных сервисов:ColabПредоставляет полностью бесплатный графический процессор.

Подробности об этой услуге можно узнать наfaqнашел на странице.

Готов к использованию Google Colab

Создайте папку на Google Диске

так какColabвGoogle Driveдля работы, поэтому нам нужно сначала указать рабочую папку. я здесьGoogle Driveсоздал файл под названием "app". Конечно, вы можете использовать другое имя или выбрать имя по умолчаниюColab Notebooksпапка вместопапка приложения.

Я создал пустую папку "приложение"

Создайте новый блокнот Colab (блокнот)

пройти черезЩелкните правой кнопкой мыши > Еще > Совместная работаШаги для создания новой заметки.

Щелкните правой кнопкой мыши > Еще > Совместная работа

нажав на имя файлаПереименоватьПримечания

Настройте бесплатный графический процессор

Оборудование по умолчанию может бытьПереход с ЦП на ГП или наоборот. Следуйте инструкциям нижеEdit > Notebook settingsили введитеRuntime > Change runtime type, затем выберитеGPUв видеАппаратный ускоритель.

Запустите базовый код Python с помощью Google Colab

Теперь мы можем начать использоватьGoogle Colab.

я побегу немногоУчебник Python NumpyсерединаОб основных типах данныхкод.

Работает отлично! :) если ты правСамый популярный язык программирования в AI PythonЕсли вы еще мало знаете, я рекомендую вам пройти этот краткий учебник.

Запускайте или импортируйте файлы .py в Google Colab

Сначала запустите код, чтобы установить необходимые библиотеки и выполнить авторизацию.

from google.colab import drive
drive.mount('/content/drive/')

Запустив приведенный выше код, вы получите следующий результат:

нажмитеэта ссылка,копироватьпроверить код ивставитьв текстовое поле ниже.

После завершения процесса авторизации вы должны увидеть:

Теперь вы можете получить доступ к своему Google Диску с помощью следующей команды:

!ls "/content/drive/My Drive/"

УстановитьKeras:

!pip install -q keras

загрузить файлыmnist_cnn.pyна вашGoogle Driveизappпапка.

mnist_cnn.pyсодержание документа

существуетНабор данных MNISTЗапустите следующий код для обучения простой сверточной сети (convnet).

!python3 "/content/drive/My Drive/app/mnist_cnn.py"

Как видно из результатов, прогон каждой эпохи занимает всего11 секунд.

Загрузите набор данных Titanic (файл .csv) и отобразите первые 5 строк файла.

Если вы хотите отurlскачатьCSV-файлприбыть "папка "приложение", просто выполните следующую команду:

!wget Пользовательское содержимое raw.GitHub content.com/Vincent… -P "/content/drive/My Drive/app"

Не используйwgetметод, вы можете загрузить свой собственный файл .csv непосредственно в папку «приложение».

читать "appпапка вCSV-файли показатьСодержимое первых 5 строк:

import pandas as pd
titanic = pd.read_csv(“/content/drive/My Drive/app/Titanic.csv”)
titanic.head(5)

Клонируйте репозиторий GitHub в Google Colab

Клонировать репозитории GitHub с помощью Git очень просто.

Шаг 1. Найдите репозиторий GitHub и получите ссылку «Git».

Найдите нужный репозиторий GitHub.

Например:GitHub.com/Хочу сказать/Может ли RAS-нет…

Нажмите Клонировать или скачать > Скопируйте ссылку!

2. Клонировать с помощью Git

Просто запустите следующую команду:

!git clone GitHub.com/Хочу сказать/Может ли RAS-нет…

3. Откройте соответствующую папку на Google Диске.

Разумеется, соответствующая папка на Google Диске имеет то же имя, что и репозиторий GitHub.

4. Откройте заметки

Щелкните правой кнопкой мыши> Открыть с помощью> Совместная работа

5. Беги

Теперь вы можете запустить код репозитория GitHub в Google Colab.

несколько полезных советов

1. Как установить сторонние библиотеки?

Keras

!pip install -q keras
import keras

PyTorch

from os import path
from wheel.pep425tags import get_abbr_impl, get_impl_ver, get_abi_tag
platform = '{}{}-{}'.format(get_abbr_impl(), get_impl_ver(), get_abi_tag())
accelerator = 'cu80' if path.exists('/opt/bin/nvidia-smi') else 'cpu'

!pip install -q download.py torch.org/Cultural Road/{У Сиси есть... torchvision
import torch

Или попробуйте это:

!pip3 install torch torchvision

MxNet

!apt install libnvrtc8.0
!pip install mxnet-cu80
import mxnet as mx

OpenCV

!apt-get -qq install -y libsm6 libxext6 && pip install -q -U opencv-python
import cv2

XGBoost

!pip install -q xgboost==0.4a30
import xgboost

GraphViz

!apt-get -qq install -y graphviz && pip install -q pydot
import pydot

7zip-ридер

!apt-get -qq install -y libarchive-dev && pip install -q -U libarchive
import libarchive

Другие библиотеки

!pip installили!apt-get installУстановите другие библиотеки.

2. Правильно ли работает графический процессор?

Чтобы убедиться, что графический процессор правильно используется в Colab, вы можете запустить следующий код для перекрестной проверки:

import tensorflow as tf
tf.test.gpu_device_name()

3. Какой графический процессор я использую?

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

В настоящее время,Colab предлагает только Tesla K80.

4. Вывести информацию о ОЗУ?

!cat /proc/meminfo

5. Выводить информацию о процессоре?

!cat /proc/cpuinfo

6. Сменить рабочую папку

Как правило, при выполнении следующей команды:

!ls

ты увидишьдаталаб и дискпапка.

Поэтому при определении каждого имени файла нужно добавитьdrive/app.

Чтобы это исправить, измените рабочий каталог. (В этом уроке я изменил его наappпапка) можно использовать следующий код:

import os
os.chdir("drive/app") 
# 译者注:挂载网盘目录后,前面没有切换过目录,这里应该输入
# os.chdir("drive/My Drive/app")

После запуска приведенного выше кода, если вы снова запустите

!ls

ты увидишьappСодержимое папки не нужно постоянно добавлятьdrive/app.

7."No backend with GPU available” решение ошибки

Если вы получили эту ошибку:

Не удалось назначить серверную часть Серверная часть с графическим процессором недоступна. Хотите использовать среду выполнения без ускорителя? # Указанный сервер не работает. Серверная часть GPU недоступна. Нужно использовать среду выполнения без ускорителей?

Вы можете повторить попытку позже. Сейчас многие люди используют графические процессоры, и это сообщение об ошибке появляется, когда используются все графические процессоры.

обратитесь сюда

8. Как очистить вывод прогона от всех клеточных линий?

можно нажатьTools>>Command Palette>>Clear All Outputs

9. Предупреждение «вывод apt-key не должен анализироваться (stdout не является терминалом)»

Если вы столкнулись с этим предупреждением:

Warning: apt-key output should not be parsed (stdout is not a terminal) #警告:apt-key 输出无法被解析(当前 stdout 不是终端)

Это означает, что вы прошли авторизацию. Просто смонтируйте Google Диск:

!mkdir -p drive
!google-drive-ocamlfuse drive

10. Как использовать Tensorboard в Google Colab?

Я рекомендую ссылаться на этот код репозитория:

GitHub.com/tantra/col…

11. Как перезапустить Google Colab?

Чтобы перезапустить (или сбросить) открытую виртуальную машину, выполните следующую команду:

!kill -9 -1

12. Как добавить форму (Form) в Google Colab?

Чтобы каждый раз не менять гиперпараметры в своем коде, вы можете просто добавить форму в Google Colab.

Например, я добавил файл, содержащийlearning_rate(学习率)переменная иoptimizer(优化器)Строковая форма.

13. Как просмотреть параметры метода?

Просмотрите параметры метода в таких фреймворках, как TensorFlow, Keras и т. д., вы можете следить за названием методаДобавить идентификатор вопросительного знака (?):

Это позволяет вам просматривать исходную документацию, не переходя на веб-сайт TensorFlow.

14. Как отправить большие файлы из Colab на Google Диск?

# 需要发送哪个文件?
file_name = "REPO.tar"

from googleapiclient.http import MediaFileUpload
from googleapiclient.discovery import build

auth.authenticate_user()
drive_service = build('drive', 'v3')

def save_file_to_drive(name, path):
  file_metadata = {'name': name, 'mimeType': 'application/octet-stream'}
  media = MediaFileUpload(path, mimetype='application/octet-stream', resumable=True)
  created = drive_service.files().create(body=file_metadata, media_body=media, fields='id').execute()
  
  return created

save_file_to_drive(file_name, file_name)

15. Как запустить Tensorboard в Google Colab?

Если вы хотите запустить Tensorboard в Google Colab, запустите код ниже.

# 你可以更改目录名
LOG_DIR = 'tb_logs'

!wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip
!unzip ngrok-stable-linux-amd64.zip

import os
if not os.path.exists(LOG_DIR):
  os.makedirs(LOG_DIR)
  
get_ipython().system_raw(
    'tensorboard --logdir {} --host 0.0.0.0 --port 6006 &'
    .format(LOG_DIR))

get_ipython().system_raw('./ngrok http 6006 &')

!curl -s http://localhost:4040/api/tunnels | python3 -c \
    "import sys, json; print(json.load(sys.stdin)['tunnels'][0]['public_url'])"

Вы можете создатьngrok.ioссылка для переходаTensorboardбревно. Вы можете найти эту ссылку URL в конце вывода.

Обратите внимание, что вашTensorboardжурнал будет сохранен вtb_logsсодержание. Конечно, вы можете изменить имя этого каталога.

После этого мы можем увидеть Tensorboard! Запустите приведенный ниже код, чтобы отследить журналы Tensorboard по URL-ссылке ngrok.

from __future__ import print_function
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 import backend as K
from keras.callbacks import TensorBoard

batch_size = 128
num_classes = 10
epochs = 12

# 输入图像维度
img_rows, img_cols = 28, 28

# the data, shuffled and split between train and test sets
(x_train, y_train), (x_test, y_test) = mnist.load_data()

if K.image_data_format() == 'channels_first':
    x_train = x_train.reshape(x_train.shape[0], 1, img_rows, img_cols)
    x_test = x_test.reshape(x_test.shape[0], 1, img_rows, img_cols)
    input_shape = (1, img_rows, img_cols)
else:
    x_train = x_train.reshape(x_train.shape[0], img_rows, img_cols, 1)
    x_test = x_test.reshape(x_test.shape[0], img_rows, img_cols, 1)
    input_shape = (img_rows, img_cols, 1)

x_train = x_train.astype('float32')
x_test = x_test.astype('float32')
x_train /= 255
x_test /= 255
print('x_train shape:', x_train.shape)
print(x_train.shape[0], 'train samples')
print(x_test.shape[0], 'test samples')

# 将类别向量转换成二分类矩阵
y_train = keras.utils.to_categorical(y_train, num_classes)
y_test = keras.utils.to_categorical(y_test, num_classes)

model = Sequential()
model.add(Conv2D(32, kernel_size=(3, 3),
                 activation='relu',
                 input_shape=input_shape))
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(num_classes, activation='softmax'))

model.compile(loss=keras.losses.categorical_crossentropy,
              optimizer=keras.optimizers.Adadelta(),
              metrics=['accuracy'])


tbCallBack = TensorBoard(log_dir=LOG_DIR, 
                         histogram_freq=1,
                         write_graph=True,
                         write_grads=True,
                         batch_size=batch_size,
                         write_images=True)

model.fit(x_train, y_train,
          batch_size=batch_size,
          epochs=epochs,
          verbose=1,
          validation_data=(x_test, y_test),
          callbacks=[tbCallBack])
score = model.evaluate(x_test, y_test, verbose=0)
print('Test loss:', score[0])
print('Test accuracy:', score[1])

Tensorboard :)

Суммировать

я думаюColabЭто вдохнет новое дыхание в глубокое обучение и исследования в области искусственного интеллекта во всем мире.

Если вы нашли эту статью полезной, пожалуйста, поаплодируйте ей ? и поделитесь ею с другими, это будет очень полезно. Не стесняйтесь оставлять сообщение ниже.

ты сможешьTwitterнайди меня на.

Наконец, обратите внимание

Оригинальный текст на английском языке будет обновляться, при необходимости переместитеАнглийский оригинал.

Если вы обнаружите ошибки в переводе или в других областях, требующих доработки, добро пожаловать наПрограмма перевода самородковВы также можете получить соответствующие бонусные баллы за доработку перевода и PR. начало статьиПостоянная ссылка на эту статьюЭто ссылка MarkDown этой статьи на GitHub.


Программа перевода самородковэто сообщество, которое переводит высококачественные технические статьи из Интернета сНаггетсДелитесь статьями на английском языке на . Охват контентаAndroid,iOS,внешний интерфейс,задняя часть,блокчейн,продукт,дизайн,искусственный интеллектЕсли вы хотите видеть более качественные переводы, пожалуйста, продолжайте обращать вниманиеПрограмма перевода самородков,официальный Вейбо,Знай колонку.