精华内容
下载资源
问答
  • 作者:凌逆战从事深度学习的研究者都知道,深度学习代码需要设计海量的数据,需要很大很大很大(重要的事情说三遍)的计算量,以至于CPU算不过来,需要通过GPU帮忙,但这必不意味着CPU的性能没GPU强,CPU是那种综合性...

    作者:凌逆战

    从事深度学习的研究者都知道,深度学习代码需要设计海量的数据,需要很大很大很大(重要的事情说三遍)的计算量,以至于CPU算不过来,需要通过GPU帮忙,但这必不意味着CPU的性能没GPU强,CPU是那种综合性的,GPU是专门用来做图像渲染的,这我们大家都知道,做图像矩阵的计算GPU更加在行,应该我们一般把深度学习程序让GPU来计算,事实也证明GPU的计算速度比CPU块,但是(但是前面的话都是废话)我们穷,买不起呀,一块1080Ti现在也要3500左右,2080Ti要9000左右,具体价格还要看显存大小,因此本文给大家带来了福利——Google免费的GPU Colaboratory。

    Google Colab简介

    Google Colaboratory是谷歌开放的一款研究工具,主要用于机器学习的开发研究,这款工具现在可以免费使用,但是不是永久免费暂时还不确定,Google Colab最大的好处是给广大开发AI者提供免费的GPU使用!GPU型号是Tesla K80,你可以在上面轻松地跑例如:Keras、Tensorflow、Pytorch等框架。

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

    Colaboratory使用步骤

    1、登录谷歌云盘

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

    2、创建Colab文件

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

    3、选择配置环境

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

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

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

    4、开始使用

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

    可以写一段代码进行测试

    (1)、挂载google drive

    from google.colab importdrive

    drive.mount('/content/gdrive')#更改工作目录

    !pwd #用 pwd 命令显示工作路径

    importos

    os.chdir("/content/gdrive/My Drive/deepmodel")

    os.getcwd()

    !ls#查看的是 content 文件夹下有哪些文件

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

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

    (2)、配置环境

    安装tensorflow-gpu 1.12.0版本

    !pip install tensorflow-gpu==1.12.0

    安装scipy 1.2.1版本

    !pip install scipy==1.2.1

    cuda降级到版本9

    !wget https://developer.nvidia.com/compute/cuda/9.0/Prod/local_installers/cuda-repo-ubuntu1604-9-0-local_9.0.176-1_amd64-deb

    !dpkg-i cuda-repo-ubuntu1604-9-0-local_9.0.176-1_amd64-deb

    !apt-key add /var/cuda-repo-9-0-local/7fa2af80.pub

    !apt-get update

    !apt-get install cuda=9.0.176-1

    或者将cuda降级到版本8.0

    !wget https://developer.nvidia.com/compute/cuda/8.0/Prod2/local_installers/cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64-deb

    !dpkg-i cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64-deb

    !apt-get update

    !apt-get install cuda=8.0.61-1

    查看TensorFlow和cuda的版本

    importtensorflow as tfprint(tf.__version__)

    !nvcc--version

    查看显卡内存使用上限

    from tensorflow.python.client importdevice_lib

    device_lib.list_local_devices()

    查看分配的GPU参数

    !nvidia-smi

    查看GPU是否在colab中

    importtensorflow as tf

    tf.test.gpu_device_name()

    如果结果为空,则不能使用GPU,如果结果为/device:GPU:0

    加载数据

    从本地加载数据

    从本地上传数据

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

    from google.colab importfiles

    uploaded=files.upload()for fn inuploaded.keys():print('用户上传的文件 "{name}" 有 {length} bytes'.format(

    name=fn, length=len(uploaded[fn])))

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

    将文件下载到本地

    from google.colab importfiles

    files.download('./example.txt') #下载文件

    从谷歌云盘加载数据

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

    from google.colab importdrive

    drive.mount('/content/gdrive')

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

    向Google Colab添加表单

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

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

    #@title 字符串

    text= 'value' #@param {type:"string"}

    dropdown = '1st option' #@param ["1st option", "2nd option", "3rd option"]

    text_and_dropdown = 'value' #@param ["选项1", "选项2", "选项3"] {allow-input: true}

    print(text)print(dropdown)print(text_and_dropdown)

    双击右边栏可以隐藏代码

    Colab中的GPU

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

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

    importtensorflow as tf

    device_name=tf.test.gpu_device_name()if device_name != '/device:GPU:0':raise SystemError('没有发现GPU device')print('Found GPU at: {}'.format(device_name))#Found GPU at: /device:GPU:0

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

    importtensorflow as tfimporttimeit

    config=tf.ConfigProto()

    config.gpu_options.allow_growth=True

    with tf.device('/cpu:0'):

    random_image_cpu= tf.random_normal((100, 100, 100, 3))

    net_cpu= tf.layers.conv2d(random_image_cpu, 32, 7)

    net_cpu=tf.reduce_sum(net_cpu)

    with tf.device('/device:GPU:0'):

    random_image_gpu= tf.random_normal((100, 100, 100, 3))

    net_gpu= tf.layers.conv2d(random_image_gpu, 32, 7)

    net_gpu=tf.reduce_sum(net_gpu)

    sess= tf.Session(config=config)#确保TF可以检测到GPU

    try:

    sess.run(tf.global_variables_initializer())excepttf.errors.InvalidArgumentError:print('\n\n此错误很可能表示此笔记本未配置为使用GPU。'

    '通过命令面板(CMD/CTRL-SHIFT-P)或编辑菜单在笔记本设置中更改此设置.\n\n')raise

    defcpu():

    sess.run(net_cpu)defgpu():

    sess.run(net_gpu)#运行一次进行测试

    cpu()

    gpu()#多次运行op

    print('将100*100*100*3通过滤波器卷积到32*7*7*3(批处理x高度x宽度x通道)大小的图像'

    '计算10次运训时间的总和')print('CPU (s):')

    cpu_time= timeit.timeit('cpu()', number=10, setup="from __main__ import cpu")print(cpu_time)print('GPU (s):')

    gpu_time= timeit.timeit('gpu()', number=10, setup="from __main__ import gpu")print(gpu_time)print('GPU加速超过CPU: {}倍'.format(int(cpu_time/gpu_time)))

    sess.close()#CPU (s):#3.593296914000007#GPU (s):#0.1831514239999592#GPU加速超过CPU: 19倍

    View Code

    Colab中的TPU

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

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

    importosimportpprintimporttensorflow as tfif 'COLAB_TPU_ADDR' not inos.environ:print('您没有连接到TPU,请完成上述操作')else:

    tpu_address= 'grpc://' + os.environ['COLAB_TPU_ADDR']print ('TPU address is', tpu_address)#TPU address is grpc://10.97.206.146:8470

    with tf.Session(tpu_address) as session:

    devices=session.list_devices()print('TPU devices:')

    pprint.pprint(devices)

    使用TPU进行简单运算

    importnumpy as npdefadd_op(x, y):return x +y

    x= tf.placeholder(tf.float32, [10,])

    y= tf.placeholder(tf.float32, [10,])

    tpu_ops=tf.contrib.tpu.rewrite(add_op, [x, y])

    session=tf.Session(tpu_address)try:print('Initializing...')

    session.run(tf.contrib.tpu.initialize_system())print('Running ops')print(session.run(tpu_ops, {x: np.arange(10), y: np.arange(10)}))#[array([ 0., 2., 4., 6., 8., 10., 12., 14., 16., 18.], dtype=float32)]

    finally:#目前,tpu会话必须与关闭会话分开关闭。

    session.run(tf.contrib.tpu.shutdown_system())

    session.close()

    在Colab中运行Tensorboard

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

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

    !unzip ngrok-stable-linux-amd64.zip#添加TensorBoard的路径

    importos

    log_dir= 'tb_logs'

    if notos.path.exists(log_dir):

    os.makedirs(log_dir)#开启ngrok service,绑定port 6006(tensorboard)

    get_ipython().system_raw('tensorboard --logdir {} --host 0.0.0.0 --port 6006 &'.format(log_dir))

    get_ipython().system_raw('./ngrok http 6006 &')#产生网站,点击网站访问tensorboard

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

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

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

    from __future__ importprint_functionimportkerasfrom keras.datasets importmnistfrom keras.models importSequentialfrom keras.layers importDense, Dropout, Flattenfrom keras.layers importConv2D, MaxPooling2Dfrom keras importbackend as Kfrom keras.callbacks importTensorBoard

    batch_size= 128num_classes= 10epochs= 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/= 255x_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

    参考

    展开全文
  • 从事深度学习的研究者都知道,深度学习代码需要设计海量的数据,需要很大很大很大(重要的事情说三遍)的计算量,以至于CPU算不过来,需要通过GPU帮忙,但这必不意味着CPU的性能没GPU强,CPU是那种综合性的,GPU是专门...

    从事深度学习的研究者都知道,深度学习代码需要设计海量的数据,需要很大很大很大(重要的事情说三遍)的计算量,以至于CPU算不过来,需要通过GPU帮忙,但这必不意味着CPU的性能没GPU强,CPU是那种综合性的,GPU是专门用来做图像渲染的,这我们大家都知道,做图像矩阵的计算GPU更加在行,应该我们一般把深度学习程序让GPU来计算,事实也证明GPU的计算速度比CPU块,但是(但是前面的话都是废话)我们穷,买不起呀,一块1080Ti现在也要3500左右,2080Ti要9000左右,具体价格还要看显存大小,因此本文给大家带来了福利——Google免费的GPU Colaboratory。

    Google Colab简介

    Google Colaboratory是谷歌开放的一款研究工具,主要用于机器学习的开发研究,这款工具现在可以免费使用,但是不是永久免费暂时还不确定,Google Colab最大的好处是给广大开发AI者提供免费的GPU使用!GPU型号是Tesla K80,你可以在上面轻松地跑例如:Keras、Tensorflow、Pytorch等框架。

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

    Colaboratory使用步骤

    1、登录谷歌云盘

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

    2、创建Colab文件

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

    3、开始使用

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

    可以写一段代码进行测试

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

    !pwd # 用 pwd 命令显示工作路径

    # /content

    !ls # 查看的是 content 文件夹下有哪些文件

    # sample_data

    !ls "drive/My Drive"

    # TensorFlow (这就是我们之前创建的那个文件夹)

    # 更改工作目录

    import os

    os.chdir("/content/drive/My Drive/TensorFlow")

    os.getcwd()

    # '/content/drive/My Drive/TensorFlow'

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

    (3)、选择配置环境

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

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

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

    加载数据

    从本地加载数据

    从本地上传数据

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

    from google.colab import files

    uploaded = files.upload()

    for fn in uploaded.keys():

    print('用户上传的文件 "{name}" 有 {length} bytes'.format(

    name=fn, length=len(uploaded[fn])))

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

    将文件下载到本地

    from google.colab import files

    files.download('./example.txt') # 下载文件

    从谷歌云盘加载数据

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

    from google.colab import drive

    drive.mount('/content/gdrive')

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

    向Google Colab添加表单

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

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

    # @title 字符串

    text = 'value' #@param {type:"string"}

    dropdown = '1st option' #@param ["1st option", "2nd option", "3rd option"]

    text_and_dropdown = 'value' #@param ["选项1", "选项2", "选项3"] {allow-input: true}

    print(text)

    print(dropdown)

    print(text_and_dropdown)

    双击右边栏可以隐藏代码

    Colab中的GPU

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

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

    import tensorflow as tf

    device_name = tf.test.gpu_device_name()

    if device_name != '/device:GPU:0':

    raise SystemError('没有发现GPU device')

    print('Found GPU at: {}'.format(device_name))

    # Found GPU at: /device:GPU:0

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

     View Code

    Colab中的TPU

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

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

    import os

    import pprint

    import tensorflow as tf

    if 'COLAB_TPU_ADDR' not in os.environ:

    print('您没有连接到TPU,请完成上述操作')

    else:

    tpu_address = 'grpc://' + os.environ['COLAB_TPU_ADDR']

    print ('TPU address is', tpu_address)

    # TPU address is grpc://10.97.206.146:8470

    with tf.Session(tpu_address) as session:

    devices = session.list_devices()

    print('TPU devices:')

    pprint.pprint(devices)

    使用TPU进行简单运算

    import numpy as np

    def add_op(x, y):

    return x + y

    x = tf.placeholder(tf.float32, [10,])

    y = tf.placeholder(tf.float32, [10,])

    tpu_ops = tf.contrib.tpu.rewrite(add_op, [x, y])

    session = tf.Session(tpu_address)

    try:

    print('Initializing...')

    session.run(tf.contrib.tpu.initialize_system())

    print('Running ops')

    print(session.run(tpu_ops, {x: np.arange(10), y: np.arange(10)}))

    # [array([ 0., 2., 4., 6., 8., 10., 12., 14., 16., 18.], dtype=float32)]

    finally:

    # 目前,tpu会话必须与关闭会话分开关闭。

    session.run(tf.contrib.tpu.shutdown_system())

    session.close()

    在Colab中运行Tensorboard

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

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

    !unzip ngrok-stable-linux-amd64.zip

    # 添加TensorBoard的路径

    import os

    log_dir = 'tb_logs'

    if not os.path.exists(log_dir):

    os.makedirs(log_dir)

    # 开启ngrok service,绑定port 6006(tensorboard)

    get_ipython().system_raw('tensorboard --logdir {} --host 0.0.0.0 --port 6006 &'.format(log_dir))

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

    # 产生网站,点击网站访问tensorboard

    !curl -s http://localhost:4040/api/tunnels | python3 -c \

    "import sys, json; print(json.load(sys.stdin)['tunnels'][0]['public_url'])"

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

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

     View Code

    参考

    展开全文
  • 作者:凌逆战从事深度学习的研究者都知道,深度学习代码需要设计海量的数据,需要很大很大很大(重要的事情说三遍)的计算量,以至于CPU算不过来,需要通过GPU帮忙,但这必不意味着CPU的性能没GPU强,CPU是那种综合性...

    作者:凌逆战

    从事深度学习的研究者都知道,深度学习代码需要设计海量的数据,需要很大很大很大(重要的事情说三遍)的计算量,以至于CPU算不过来,需要通过GPU帮忙,但这必不意味着CPU的性能没GPU强,CPU是那种综合性的,GPU是专门用来做图像渲染的,这我们大家都知道,做图像矩阵的计算GPU更加在行,应该我们一般把深度学习程序让GPU来计算,事实也证明GPU的计算速度比CPU块,但是(但是前面的话都是废话)我们穷,买不起呀,一块1080Ti现在也要3500左右,2080Ti要9000左右,具体价格还要看显存大小,因此本文给大家带来了福利——Google免费的GPU Colaboratory。

    Google Colab简介

    Google Colaboratory是谷歌开放的一款研究工具,主要用于机器学习的开发研究,这款工具现在可以免费使用,但是不是永久免费暂时还不确定,Google Colab最大的好处是给广大开发AI者提供免费的GPU使用!GPU型号是Tesla K80,你可以在上面轻松地跑例如:Keras、Tensorflow、Pytorch等框架。

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

    Colaboratory使用步骤

    1、登录谷歌云盘

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

    2、创建Colab文件

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

    3、开始使用

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

    可以写一段代码进行测试

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

    !pwd #用 pwd 命令显示工作路径#/content

    !ls #查看的是 content 文件夹下有哪些文件#sample_data

    !ls "drive/My Drive"

    #TensorFlow (这就是我们之前创建的那个文件夹)

    #更改工作目录

    importos

    os.chdir("/content/drive/My Drive/TensorFlow")

    os.getcwd()#'/content/drive/My Drive/TensorFlow'

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

    (3)、选择配置环境

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

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

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

    加载数据

    从本地加载数据

    从本地上传数据

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

    from google.colab importfiles

    uploaded=files.upload()for fn inuploaded.keys():print('用户上传的文件 "{name}" 有 {length} bytes'.format(

    name=fn, length=len(uploaded[fn])))

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

    将文件下载到本地

    from google.colab importfiles

    files.download('./example.txt') #下载文件

    从谷歌云盘加载数据

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

    from google.colab importdrive

    drive.mount('/content/gdrive')

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

    向Google Colab添加表单

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

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

    #@title 字符串

    text= 'value' #@param {type:"string"}

    dropdown = '1st option' #@param ["1st option", "2nd option", "3rd option"]

    text_and_dropdown = 'value' #@param ["选项1", "选项2", "选项3"] {allow-input: true}

    print(text)print(dropdown)print(text_and_dropdown)

    双击右边栏可以隐藏代码

    Colab中的GPU

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

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

    importtensorflow as tf

    device_name=tf.test.gpu_device_name()if device_name != '/device:GPU:0':raise SystemError('没有发现GPU device')print('Found GPU at: {}'.format(device_name))#Found GPU at: /device:GPU:0

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

    importtensorflow as tfimporttimeit

    config=tf.ConfigProto()

    config.gpu_options.allow_growth=True

    with tf.device('/cpu:0'):

    random_image_cpu= tf.random_normal((100, 100, 100, 3))

    net_cpu= tf.layers.conv2d(random_image_cpu, 32, 7)

    net_cpu=tf.reduce_sum(net_cpu)

    with tf.device('/device:GPU:0'):

    random_image_gpu= tf.random_normal((100, 100, 100, 3))

    net_gpu= tf.layers.conv2d(random_image_gpu, 32, 7)

    net_gpu=tf.reduce_sum(net_gpu)

    sess= tf.Session(config=config)#确保TF可以检测到GPU

    try:

    sess.run(tf.global_variables_initializer())excepttf.errors.InvalidArgumentError:print('\n\n此错误很可能表示此笔记本未配置为使用GPU。'

    '通过命令面板(CMD/CTRL-SHIFT-P)或编辑菜单在笔记本设置中更改此设置.\n\n')raise

    defcpu():

    sess.run(net_cpu)defgpu():

    sess.run(net_gpu)#运行一次进行测试

    cpu()

    gpu()#多次运行op

    print('将100*100*100*3通过滤波器卷积到32*7*7*3(批处理x高度x宽度x通道)大小的图像'

    '计算10次运训时间的总和')print('CPU (s):')

    cpu_time= timeit.timeit('cpu()', number=10, setup="from __main__ import cpu")print(cpu_time)print('GPU (s):')

    gpu_time= timeit.timeit('gpu()', number=10, setup="from __main__ import gpu")print(gpu_time)print('GPU加速超过CPU: {}倍'.format(int(cpu_time/gpu_time)))

    sess.close()#CPU (s):#3.593296914000007#GPU (s):#0.1831514239999592#GPU加速超过CPU: 19倍

    View Code

    Colab中的TPU

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

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

    importosimportpprintimporttensorflow as tfif 'COLAB_TPU_ADDR' not inos.environ:print('您没有连接到TPU,请完成上述操作')else:

    tpu_address= 'grpc://' + os.environ['COLAB_TPU_ADDR']print ('TPU address is', tpu_address)#TPU address is grpc://10.97.206.146:8470

    with tf.Session(tpu_address) as session:

    devices=session.list_devices()print('TPU devices:')

    pprint.pprint(devices)

    使用TPU进行简单运算

    importnumpy as npdefadd_op(x, y):return x +y

    x= tf.placeholder(tf.float32, [10,])

    y= tf.placeholder(tf.float32, [10,])

    tpu_ops=tf.contrib.tpu.rewrite(add_op, [x, y])

    session=tf.Session(tpu_address)try:print('Initializing...')

    session.run(tf.contrib.tpu.initialize_system())print('Running ops')print(session.run(tpu_ops, {x: np.arange(10), y: np.arange(10)}))#[array([ 0., 2., 4., 6., 8., 10., 12., 14., 16., 18.], dtype=float32)]

    finally:#目前,tpu会话必须与关闭会话分开关闭。

    session.run(tf.contrib.tpu.shutdown_system())

    session.close()

    在Colab中运行Tensorboard

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

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

    !unzip ngrok-stable-linux-amd64.zip#添加TensorBoard的路径

    importos

    log_dir= 'tb_logs'

    if notos.path.exists(log_dir):

    os.makedirs(log_dir)#开启ngrok service,绑定port 6006(tensorboard)

    get_ipython().system_raw('tensorboard --logdir {} --host 0.0.0.0 --port 6006 &'.format(log_dir))

    get_ipython().system_raw('./ngrok http 6006 &')#产生网站,点击网站访问tensorboard

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

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

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

    from __future__ importprint_functionimportkerasfrom keras.datasets importmnistfrom keras.models importSequentialfrom keras.layers importDense, Dropout, Flattenfrom keras.layers importConv2D, MaxPooling2Dfrom keras importbackend as Kfrom keras.callbacks importTensorBoard

    batch_size= 128num_classes= 10epochs= 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/= 255x_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

    参考

    作者:凌逆战

    欢迎任何形式的转载,但请务必注明出处。

    限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。

    本文章不做任何商业用途,仅作为自学所用,文章后面会有参考链接,我可能会复制原作者的话,如果介意,我会修改或者删除。

    展开全文
  • 解决方案 Installing tensorflow gpu will make the script to detect gpu automatically. if it is not detecting the gpu, check the driver versions(Cuda and cudnn). If no version mismatch or errors occur,...

    I have created a flask service for accepting requests with camera URLs as parameters for finding objects(table, chair etc...) in the camera frame. I have written code in flask for accepting POST requests.

    @app.route('/rest/detectObjects', methods=['GET','POST'])

    def detectObjects()

    ...

    json_result = function_call_for_detecting_objects()

    ...

    return

    In the function, its loads the tf model for object detection and returns the result. A large amount of request needs to be processed simultaneously by the flask server. So I need to execute the function using GPU as the camera access time and image processing for object detection takes much time and CPU utilization. Have a 4 GB GeForce GTX 1050 Ti/PCIe/SSE2. How can I make my python script to make use of GPU for this?

    解决方案

    Installing tensorflow gpu will make the script to detect gpu automatically. if it is not detecting the gpu, check the driver versions(Cuda and cudnn). If no version mismatch or errors occur, then the script can identify the gpu present and will run utilizing the gpu.

    展开全文
  • 我想请问下如何用pycharm远程进入集群下的节点,然后利用节点下的GPU跑代码,我现在已经能用pycharm远程连接服务器,但是不知如何才能进入服务器下的节点,请知道的大佬指点指点。
  • 其实除了自己买内存、显卡(受到贫穷限制),也可以通过Goggle的Colab、以及阿里云,腾讯云的免费算力来跑代码(真香),因为这次参加了nlp入门赛事,被问到算力的问题比较多,今天就整理一下我是如何用阿里云的免费...
  • 文章目录如何在服务器上pytorch代码使用gpu跑神经网络模型前言一、pytorch---用gpu训练模型二、放到gpu上的方法总结 前言 鉴于今天跑模型将cpu版本的改成cuda版本的心路历程,觉得必须要记录总结这一方法,不然以后...
  • Python程序如何用GPU加速:Tesla、CUDA、Numba

    千次阅读 多人点赞 2019-12-02 16:56:56
    首先要明白,普通的Python代码是无法使用GPU加速的,只能在GPU针对GPU设计的程序。 硬件加速必须要硬件语言实现。 查询Python+GPU关键字,除了TensorFlow,另外出镜率比较高的几个概念是:Numba、CUDA、PyCUDA...
  • 负荷下午,我 Python 深度学习框架 ...第一个把数据100遍(epochs),第二个把数据500遍。我的笔记本电脑算起来很吃力,风扇一直在响。大热天的,看着好可怜。笔记本电脑进行机器学习,还是不大合适的。我...
  • 这是个很严峻的问题,每次跑代码,内存就炸了,gpu还没开始呢,看一些博客上是这样说的: 方法一: import os os.environ["CUDA_VISIBLE_DEVICES"] = "2"#这里的数字代表第几块显卡 查看有几块显卡及显卡的...
  • 下午,我 Python 深度学习框架 Keras 训练了一个包含3层神经网络的回归模型,预测波士顿地区房价。 这是来自于 “Deep Learning with Python” 书上的一个例子。 运行的时候,代码有两个大循环。 第...
  • 最近参加比赛可能要GPU比较多,但是网页打开notebook太麻烦了,没法像本地编译器一样。于是搞了一下本地VSCode连接极链AI的云主机,可以愉快地本地码代码,云端程序。方法如下: l 打开VSCode,在extension中...
  • 最近参加比赛可能要GPU比较多,但是网页打开notebook太麻烦了,没法像本地编译器一样。于是搞了一下本地VSCode连接极链AI的云主机,可以愉快地本地码代码,云端程序。方法如下:l 打开VSCode,在extension中...
  • 最近参加比赛可能要GPU比较多,但是网页打开notebook太麻烦了,没法像本地编译器一样。于是搞了一下本地VSCode连接极链AI的云主机,可以愉快地本地码代码,云端程序。方法如下:l 打开VSCode,在extension中...
  • 最近参加比赛可能要GPU比较多,但是网页打开notebook太麻烦了,没法像本地编译器一样。于是搞了一下本地VSCode连接极链AI的云主机,可以愉快地本地码代码,云端程序。方法如下:l 打开VSCode,在extension中...
  • 然后去搜索了一下,找到了一些在服务器跑代码的时候的小技巧和解决方案,给在这里用于自查: 实时监控资源动态  大家的服务器一般都是Liunix系统较多,所以在这里普及一个常用的命令可以方便大家实时的查看GPU...
  • 注意:训练前要nvidia-smi来查看一下当前GPU的使用情况,不要一下子就放上去把大家一起挤挂了,这是负责任的行为。第一种:python代码中设置使用的GPU 使用方法: 第一步: import os os.environ["CUDA_...
  • 免费使用谷歌GPU

    千次阅读 2018-11-08 19:59:20
    2018-11-8:科学使用谷歌GPU教你免费使用谷歌GPU一个Gmail邮箱对应一个免费GPU在谷歌GPU运行本地代码其他 教你免费使用谷歌GPU ...这篇文章记录一下如何用谷歌GPU跑实验: 首先登陆Gmail邮箱(没有的请自...
  • 最近在论文,云服务器虽然有JupyterLab,但习惯了本地编译,试着VSCode连接了一下,本来是方便自己查阅的笔记,也贴出来给需要的盆友,帮助大家轻松连接实例,无需耗费太多时间在环境部署上了。 大家都知道,...
  • 后将pytorch从cpu版本改装成gpu版本传送门,并安装cuda传送门,下面就是如何用gpu跑程序的问题了 解决 其实只需加四行代码(目的是定义cuda名字和输入输出值放到cuda),在原有的pytorch的cpu版本的代码上补写代码。...
  • 作为刚入门深度学习的小白,准备兴高采烈的开始用GPU跑深度学习算法.已经安装好了tensorflow的CPU版本,都是想要加速,搭建tensorflow-gpu的版本。 我的环境是python==3.7, tensorflow==1.15,这两个的安装可以去...
  • 我发现的模型,有的时候GPU利用率比较低。经过对模型的拆解运行,最后确定是LSTM拉低了GPU利用率。 老的利用率截图 新的利用率接近100% 我最后重新写的代码见附录 原来的代码见附录,我找了一番资料后,感觉写得...
  • 毕设是做关于深度学习的,之前一直在tensorflow cpu版本,(cpu版是为了调试代码,跑代码我是通过google colab来完成的)最近室友的2070S主机正好闲着了,开始学着装gpu版本。 上网看了一下,大多数tensorflow-gpu...
  • 在annaconda中创建了tensorflow-gpu的环境,代码可以跑通,没有报错,但是每次到最后一块检测test_image 的时候就服务器挂了。 创建tensorflowcpu环境可以正常下来(最后显示那个输出结果),请问是为什么?如何...
  • 前天了一下caffe-ssd模型,并在pascal voc上了两天,效果不错,今天突然发现caffe-ssd目录没有了,,好像莫名被删除了,于是早上重新装了一遍,下午开始摸索如何用caff-ssd自己的数据,一个下午时间总算摸索...
  • 最近看到CTPN,想自己跑通下代码,但是...源码是在Linux下,用gpu进行的训练,所以需要调整代码才能在win环境下。遇到的问题有: 一、先跑通demo.py 1.windows中如何进行这步操作?? .so是Linux下动态库文件,
  • 用来训练非常耗时,耗资源,比方只有 GPU 机器才能等等 基于以上的事实,我在平时的工作中,就不得不写一些数据集生成代码。 写的过程中,我也觉得非常有启发, 下面我们分享这一过程的心得。 包括以下内容: ...
  • 高性能计算,是一个非常广泛的话题,可以从专用硬件/处理器/体系结构/GPU...高性能计算,在商业软件应用开发过程中,要解决的核心问题,很白话的方式来说,“在有限的硬件条件下,如何让一段原本不动的代码起来

空空如也

空空如也

1 2
收藏数 40
精华内容 16
关键字:

如何用gpu跑代码