深度学习怎么跑代码?

深度学习怎么跑代码?从事深度学习的研究者都知道,深度学习代码需要设计海量的数据,需要很大很大很大的计算量,以至于CPU算不过来,需要通过GPU帮忙,今天怎么教大家免费使用GPU跑深度学习代码。

深度学习怎么跑代码?

Colabortory是一个jupyter notebook环境,它支持python2和python3,还包括TPU和GPU加速,该软件与Google云盘硬盘集成,用户可以轻松共享项目或将其他共享项目复制到自己的帐户中。

Colaboratory使用步骤

1、登录谷歌云盘

https://drive.google.com/drive/my-drive(没有账号的可以注册一个)

(1)、右键新建文件夹,作为我们的项目文件夹。

深度学习怎么跑代码?_第1张图片

2、创建Colab文件

右键在更多里面选择google Colaboratry(如果没有Colaboratory需要在关联更多应用里面关联Colaboratory)

深度学习怎么跑代码?_第2张图片

3、开始使用

这时候会直接跳转到Colaboratory界面,这个界面很像Jupyter Notebook,Jupyter的命令在Colaboratory一样适用,值得一提的是,Colab不仅可以运行Python代码,只要在命令前面加一个" !",这条命令就变成了linux命令,比如我们可以" ! ls"查看文件夹文件,还可以!pip安装库。以及运行py程序!python2 temp.py

可以写一段代码进行测试

深度学习怎么跑代码?_第3张图片

更改工作目录,在Colab中cd命令是无效的,切换工作目录使用chdir函数

深度学习怎么跑代码?_第4张图片

重新启动Colab命令:!kill -9 -1

(3)、选择配置环境

我们大家肯定会疑虑,上述方法跑的那段程序是不是用GPU跑的呢?不是,想要用GPU跑程序我们还需要配置环境,

点击工具栏“修改”,选择笔记本设置

深度学习怎么跑代码?_第5张图片

在运行时类型我们可以选择Python 2或Python 3,硬件加速器我们可以选择GPU或者TPU(后面会讲到),或者None什么都不用。

加载数据

从本地加载数据

从本地上传数据

files.upload 会返回已上传文件的字典。 此字典的键为文件名,值为已上传的数据。

深度学习怎么跑代码?_第6张图片

我们运行该段程序之后,就会让我们选择本地文件,点击上传后,该文件就能被读取了

深度学习怎么跑代码?_第7张图片

将文件下载到本地

从谷歌云盘加载数据

使用授权代码在运行时装载 Google 云端硬盘

在Colab中运行上述代码,会出现一段链接,点击链接,复制链接中的密钥,输入到Colab中就可以成功把Colab与谷歌云盘相连接,连接后进行路径切换,就可以直接读取谷歌云盘数据了。

深度学习怎么跑代码?_第8张图片

向Google Colab添加表单

为了不每次都在代码中更改超参数,您可以简单地将表单添加到Google Colab。

深度学习怎么跑代码?_第9张图片

点击之后就会出现左右两个框,我们在左框中输入

深度学习怎么跑代码?_第10张图片

双击右边栏可以隐藏代码

深度学习怎么跑代码?_第11张图片

Colab中的GPU

首先我们要让Colab连上GPU,导航栏-->编辑-->笔记本设置-->选择GPU

接下来我们来确认可以使用Tensorflow连接到GPU

深度学习怎么跑代码?_第12张图片

我们可以在Colab上运行以下代码测试GPU和CPU的速度

深度学习怎么跑代码?_第13张图片

View Code

Colab中的TPU

首先我们要让Colab连上GPU,导航栏-->编辑-->笔记本设置-->选择TPU

接下来我们来确认可以使用Tensorflow连接到TPU

深度学习怎么跑代码?_第14张图片

使用TPU进行简单运算

深度学习怎么跑代码?_第15张图片

在Colab中运行Tensorboard

想要在Google Colab中运行Tensorboard,请运行以下代码

深度学习怎么跑代码?_第16张图片

您可以使用创建的ngrok.io URL 跟踪Tensorboard日志。您将在输出末尾找到URL。请注意,您的Tensorboard日志将保存到tb_logs目录。当然,您可以更改目录名称。

深度学习怎么跑代码?_第17张图片

之后,我们可以看到Tensorboard发挥作用!运行以下代码后,您可以通过ngrok URL跟踪Tensorboard日志。

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

# input image dimensions
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')

# convert class vectors to binary class matrices
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])

View Code

深度学习怎么跑代码?_第18张图片

免费分享一些我整理的人工智能学习资料给大家,包括一些AI常用框架实战视频、图像识别、OpenCV、NLQ、机器学习、pytorch、计算机视觉、深度学习与神经网络等视频、课件源码、国内外知名精华资源、AI热门论文、行业报告等。

为了更好的系统学习AI,推荐大家收藏一份。

下面是部分截图,文末附免费下载方式。

一、人工智能课程及项目

二、国内外知名精华资源

三、人工智能论文合集

四、人工智能行业报告

学好人工智能,要多看书,多动手,多实践,要想提高自己的水平,一定要学会沉下心来慢慢的系统学习,最终才能有所收获。

点击下方名片,扫码免费下载文中资料。

你可能感兴趣的:(深度学习DL,深度学习,python,人工智能)