Colab初体验 | 用tensorflow简单实现 cifar-10 数据集构建CNN

Colab

  • 第一步:当然是注册一个Google账户了!
  • 第二步:创建一个新的笔记本
  • 第三步:挂载Google drive
  • 第四步:上传你的代码文件(xx.py)
  • 第五步:下载数据集
  • 第六步:执行代码
  • 遇到的问题:RuntimeError:tf.placeholder() is not compatible with eager execution
  • PS:查看GPU情况

笔者又来了。由于心血来潮,很想尝试一下Google Colab的效果如何,把前几天发出来的CNN测试代码放在Colab上,测试效果如何。下面就让我们进行实验吧~

第一步:当然是注册一个Google账户了!

这个步骤就请参考百度。(实在太多了,“对阵下药”解决问题才是重要的。)笔者之前注册好了一个账号,过了一晚上又登陆不上了,因为手机号验证不通过造成的。这真的很糟心呀!因为借用了同学的账号进行了下面的操作,感谢帮助我的同学!

第二步:创建一个新的笔记本

Colab初体验 | 用tensorflow简单实现 cifar-10 数据集构建CNN_第1张图片
可以点击这个来修改当前笔记本的名字。
Colab初体验 | 用tensorflow简单实现 cifar-10 数据集构建CNN_第2张图片
点击 代码执行程序——>修改运行时类型,修改为GPU硬件加速器。
Colab初体验 | 用tensorflow简单实现 cifar-10 数据集构建CNN_第3张图片

第三步:挂载Google drive

下面的代码用于安装库,并执行授权:

!apt-get install -y -qq software-properties-common python-software-properties module-init-tools
!add-apt-repository -y ppa:alessandro-strada/ppa 2>&1 > /dev/null
!apt-get update -qq 2>&1 > /dev/null
!apt-get -y install -qq google-drive-ocamlfuse fuse
from google.colab import auth
auth.authenticate_user()
from oauth2client.client import GoogleCredentials
creds = GoogleCredentials.get_application_default()
import getpass
!google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret} < /dev/null 2>&1 | grep URL
vcode = getpass.getpass()
!echo {vcode} | google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret}

Colab初体验 | 用tensorflow简单实现 cifar-10 数据集构建CNN_第4张图片
以上的结果是经过了两次验证,点击上面的链接,登陆后得到对应的密钥,填入到对应的方框中,确认"Enter",即可完成上面的操作。

创建drive根目录。

#指定Google Drive云端硬盘的根目录,名为drive
!mkdir -p drive
!google-drive-ocamlfuse drive

Colab初体验 | 用tensorflow简单实现 cifar-10 数据集构建CNN_第5张图片

第四步:上传你的代码文件(xx.py)

最好上传至/content/drive/目录下。记得要修改代码里文件的路径,这是最基本的操作,不能忘记噢!!
Colab初体验 | 用tensorflow简单实现 cifar-10 数据集构建CNN_第6张图片

第五步:下载数据集

因为从本地上传数据集就太慢了,直接从网上下载下来,既省心又不费力,棒(๑•̀ㅂ•́)و✧~

下载cifar-10数据集,直接从网站上下载。

# Get CIFAR10
!wget http://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz
!tar -xzvf cifar-10-python.tar.gz
!rm cifar-10-python.tar.gz 

Colab初体验 | 用tensorflow简单实现 cifar-10 数据集构建CNN_第7张图片

需要注意的是, 之前的代码的运行环境:tensorflow1.13.1。要是tensorflow2.2.0,则需要修改代码。笔者修改过,还是报错好多,因此就可以在colab下执行!pip install tensorflow==1.13.1换成上篇的环境即可。

附上tensorflow 1.12+ 与tensorflow 2.0版本的区别:
https://docs.google.com/spreadsheets/d/1FLFJLzg7WNP6JHODX5q8BDgptKafq_slHpnHVbJIteQ/edit#gid=0

第六步:执行代码

确定代码没有报错之后,可以运行代码啦!

输入下面的代码,就可以把代码跑起来啦~

! python /content/drive/test06.py

代码还在跑……,运行好慢好慢好慢……
Colab初体验 | 用tensorflow简单实现 cifar-10 数据集构建CNN_第8张图片
下图是用自己笔记本跑出来的结果,可以看到,用colab跑出来的结果不仅差了一点,速度还很慢很慢很慢……

Colab初体验 | 用tensorflow简单实现 cifar-10 数据集构建CNN_第9张图片
结束这次colab的初体验。

完结撒花★,°:.☆( ̄▽ ̄)/$:.°★


遇到的问题:RuntimeError:tf.placeholder() is not compatible with eager execution

修改import tensorflow as tf为:

import tensorflow as tf
tf.compat.v1.disable_eager_execution()

就解决了笔者当时遇到的bug。

笔者是参考某个博客大佬的经验,附上链接:
https://blog.csdn.net/qq_39777550/article/details/104224296

PS:查看GPU情况

下面的代码可以查看GPU是否在colab中:

import tensorflow as tf
tf.test.gpu_device_name()

在这里插入图片描述
查看GPU显存情况:

!/opt/bin/nvidia-smi

Colab初体验 | 用tensorflow简单实现 cifar-10 数据集构建CNN_第10张图片
查看GPU显存的上限值:

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

Colab初体验 | 用tensorflow简单实现 cifar-10 数据集构建CNN_第11张图片
参考博客:https://blog.csdn.net/oldmao_2001/article/details/90737735

你可能感兴趣的:(#,机器学习实验)