Google Colab 简单使用

news/2024/9/20 3:05:53/文章来源:https://www.cnblogs.com/lyuSky/p/18412583

使用Google Colab需要谷歌账号和一点点魔法。注册好账号,找到我的云盘,可以点击右上角的log 跳转。

我的云端银盘这里可以选择上传文件还是文件夹,还可以新建文件夹然后在这个文件夹中选择你要上传的文件。

例如我这创建了一个train_test 的文件夹,然后上传了 test_ScVgIM0.ziptrain_LbELtWX.zip 两个压缩文件,以及sample_submission_I5njJSF.csv(下面要用到这个,可以在analyticsvidhya 下载)


然后右键-->选择更多--->Googel Colaboratory,如果没有,选择关联跟多应用,安装一下Googel Colaboratory


然后可以看到这个界面,这个就是和jupyter notebook 差不多的功能。

右上角 修改-->笔记本设置----> 选择GPU。

接下来就可以操作了。
1.挂载云盘

from google.colab import drive
# 挂载云盘
drive.mount('/content/drive/')

出现以下输出就证明挂载好了。

2.选择目录,可以在右侧看到云盘中的文件目录。

import os
# 选择哪一个文件夹
os.chdir("/content/drive/My Drive/train_test")

3.查看文件夹下的文件以及解压文件,这一步时间稍微要长一点。

# 列出当前文件夹下的文件
!ls
# 解压压缩包
!unzip train_LbELtWX.zip && unzip test_ScVgIM0.zip

4.导入必要的依赖文件

# 导入依赖
import keras
from keras.models import Sequential
from keras.layers import Dense, Dropout, Flatten
from keras.layers import Conv2D, MaxPooling2D
from keras.utils import to_categorical
from keras.preprocessing import image
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from keras.utils import to_categorical
from tqdm import tqdm

5.主体代码,生成预测模型。

# 加载数据集
train = pd.read_csv('train.csv')
train_image = []
for i in tqdm(range(train.shape[0])):img = image.load_img('train/' + train['id'][i].astype('str') + '.png', target_size=(28, 28, 1),color_mode='grayscale')img = image.img_to_array(img)img = img / 255train_image.append(img)X = np.array(train_image)
y = train['label'].values
y = to_categorical(y)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42, test_size=0.2)
model = Sequential()
model.add(Conv2D(32, kernel_size=(3, 3), activation='relu', input_shape=(28, 28, 1)))
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(10, activation='softmax'))model.compile(loss='categorical_crossentropy', optimizer='Adam', metrics=['accuracy'])
model.fit(X_train, y_train, epochs=10, validation_data=(X_test, y_test))

6.加载测试文件数据集.

# 加载测试文件数据集
test = pd.read_csv('test.csv')
test_image = []
for i in tqdm(range(test.shape[0])):img = image.load_img('test/' + test['id'][i].astype('str') + '.png', target_size=(28, 28, 1), color_mode='grayscale')img = image.img_to_array(img)img = img / 255test_image.append(img)# Convert the list to a NumPy array
test = np.array(test_image)

7.生成结果

# Making predictions
predictions = model.predict(test)
predicted_classes = np.argmax(predictions, axis=1)  # Get the class labels from the predictions
# 保存结果集
sample = pd.read_csv('sample_submission_I5njJSF.csv')
sample['label'] = predicted_classes
sample.to_csv('sample_cnn_img.csv', header=True, index=False)

运行之后在右侧文件夹中会生成 sample_cnn_img.csv文件,这个就是预测结果集。

如果想要提交结果集看一下排名可以在这个连接下去 提交文件,score 就是你的分数。


参考链接:[Google Colab 基础操作](https://colab.research.google.com/notebooks/io.ipynb#scrollTo=bRFyEsdfBxJ9) 参考链接:[Google Colab免费GPU使用教程(一)](https://www.cnblogs.com/lfri/p/10471852.html) 参考链接:[10分钟搭建你的第一个图像识别模型(附步骤、代码)](https://www.jiqizhixin.com/articles/2019-02-20-9)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/796643.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Go runtime 调度器精讲(四):运行 main goroutine

原创文章,欢迎转载,转载请注明出处,谢谢。0. 前言 皇天不负有心人,终于我们到了运行 main goroutine 环节了。让我们走起来,看看一个 goroutine 到底是怎么运行的。 1. 运行 goroutine 稍微回顾下前面的内容,第一讲 Go 程序初始化,介绍了 Go 程序是怎么进入到 runtime 的…

Python网页应用开发神器Dash 2.18.1稳定版本来啦

本文示例代码已上传至我的Github仓库:https://github.com/CNFeffery/dash-master Gitee同步仓库地址:https://gitee.com/cnfeffery/dash-master大家好我是费老师,上周Dash发布了2.18.0新版本,并于今天发布了可稳定使用的2.18.1版本(自古.1版本最稳✌),今天的文章中就将针…

吊打面试官!从多维度理解架构

大家好,我是汤师爷~ 在工作当中,我们经常会听到以下说法:产品负责人说,现在的业务架构太复杂,需要仔细梳理下。 技术领导说,这个项目很复杂,需要做下系统架构方案评审。 研发经理说,这次秒杀活动访问量非常大,需要用到高并发架构方案。 一线研发说,互联网大厂都会用到…

数组的下标越界

1.数组下标 数组的下标通俗来讲是数组中数据的代号,例如a[0]=1,即数组下标0代表1 2.下标越界 假设创建的数组内存为3(a=new int[3]),则数组的下标为0,1,2. 如果多输出了下标3,则会显示下标越界。 1.正常数组的输出2.下标越界的输出(即提示你数组下标越界异常!) 3.数组…

转载:国产操作系统麒麟v10、UOS在线打开excel文件并动态赋值

在实际的开发过程中,经常会遇到数据库中的数据填充到excel生成一份正式文件的功能,PageOffice客户端控件支持在线预览Excel文件时,通过Workbook对象来实现对Excel文件的数据填充功能,如果只是简单的填充一下数据,那么通过调用Sheet对象的openCell方法获取到Cell对象并赋值…

构建 openEuler Embedded 24.03 LTS (Phytium BSP)

Ubuntu 24.04 构建 openEuler Embedded 24.03 LTS (Phytium BSP) 参考链接:Phytium-OpenEuler-Embedded-BSP - Gitee 1 介绍 本文档介绍如何在Ubuntu 24.04上构建openEuler Embedded 24.03 LTS (Phytium BSP)。对计算机配置有要求。 2 脚本 将以下内容复制到新文件oe_phy.sh,…

架构师备考的一些思考(四)

前言 对于数学,我们之前学的是对的,但不是真的,所以我们没有数学思维。 对于计算机,我们学校教的是对的,但不是真的,所以仅仅从学校学习知识的应届毕业生,不论985,211,本科,专科都一样,都是一张白纸,啥也不会。 案例分析 案例分析是5选3,第一题必答。问题一的类型 …

字符串-面试题

字符串的相关面试题String 的不可变性String底层是一个 final修饰的字符数组,当改变String的值时,会在常量池生成新的字符串,字符数组的地址指向常量池中新的字符串StringBuffer的扩容原理String、StringBuffer、StringBuilder三者对比Strings是不可变的字符序列,底层是一个…

单考一个OCP认证?还是OCP和OCM认证都要考?

​ Oracle的OCP认证是数据库行业非常经典的一个认证,从事数据库行业的人都建考一个 Oracle OCP 认证。 OCP认证内容包括: OCA部分:数据库基础知识、SQL 语言使用、基本的数据库管理技能等,如数据库安装与配置、理解数据库架构、管理数据库实例、备份和恢复,以及使用 SQL 进…

为什么那么多开源软件都用netty来做网络通信编程框架?

1、用netty来做网络通信编程框架而不是我们自己去基于JDK NIO来编程的好处有如下这些: (1)、netty支持常见的应用层协议(如:HTTP、FTP、DNS等),还可以支持自定义协议; (2)、netty可以自动解决网络编程当中的粘包与半包问题; (3)、netty还可以支持流量整形; (4)、netty对…

USB总线-Linux内核USB3.0设备控制器中断处理程序分析(九)

1.概述 USB设备枚举、请求处理、数据交互都涉及USB设备控制器中断。当有事件发生时,USB设备控制器首先将事件信息通过DMA写入到事件缓冲区中,然后向CPU发出中断,随后CPU调用中断处理函数开始处理中断事件。 2.事件 dwc3 USB设备控制器事件使用dwc3_event数据结构描述,由4个…

通义灵码企业代码补全增强使用实践

通义灵码提供了企业代码补全增强的能⼒,在开发者使⽤通义灵码 IDE 插件的⾏间代码补全时,可以结合企业上传的代码库作为上下⽂进⾏⾏间代码补全,使代码补全更加贴合企业代码规范、业务特点。本⽂将分享如何构建⾼质量的企业代码库,以及开发者在前端和后端开发场景的使⽤实践…