CoLab设置使用GPU和TPU

2023-11-19

##tf2.4.0
from tensorflow.python.keras.callbacks import EarlyStopping
from tensorflow.python.keras.layers import Embedding, SpatialDropout1D, LSTM, Dense
from tensorflow.python.keras.models import Sequential

import tensorflow as tf
import os

##下面6行为GPU设置,若用GPU,则用这6行,其他的就不用了了
# gpus = tf.config.list_physical_devices("GPU")
# print(gpus)
# if gpus:
#     gpu0 = gpus[0]  # 如果有多个GPU,仅使用第0个GPU
#     tf.config.experimental.set_memory_growth(gpu0, True)  # 设置GPU显存用量按需使用
#     tf.config.set_visible_devices([gpu0], "GPU")

#加载数据
with open('w2v1000.pkl', 'rb') as f:
    dict = pickle.load(f)
X = dict['X']
Y = dict['Y']

#TPU设置代码,以下全为TPU的设置,需要注释掉上面GPU设置的6行,所有代码原封不动照搬即可,只需要
#在模型编译print语句后把自己模型给替换即可。
tf.keras.backend.clear_session()
resolver = tf.distribute.cluster_resolver.TPUClusterResolver(tpu='grpc://' + os.environ['COLAB_TPU_ADDR'])
tf.config.experimental_connect_to_cluster(resolver)
# This is the TPU initialization code that has to be at the beginning.
tf.tpu.experimental.initialize_tpu_system(resolver)
print("All devices: ", tf.config.list_logical_devices('TPU'))
#strategy = tf.distribute.experimental.TPUStrategy(resolver)#这句好像已经改成下面了
strategy = tf.distribute.TPUStrategy(resolver)

with strategy.scope():#模型编译
  print("# Preparing model")#就是这条语句后替换自己的模型即可,其他不用动
  model = Sequential()#我写的示例为LSTM模型
  model.add(LSTM(128, dropout=0.2, recurrent_dropout=0.2, input_shape=(1600, 150),      return_sequences=True))
  model.add(Dense(32))
  #model.add(Dense(2, activation='softmax'))
  model.add(Dense(1, activation='sigmoid'))
  model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['acc'])
  print("  ", model.summary())

#模型训练,这条语句就按正常写即可,与TPU无关了
model.fit(X, Y, epochs=10,  batch_size=10, validation_split=0.2,workers=4,
    use_multiprocessing=True,callbacks=[EarlyStopping(monitor='loss', patience=7, min_delta=0.0001)])

#模型保存
model.save('w2vmodel1000.h5')

以下是Colab测试结果:

 

 可以看到设备类型为TPU,速度十分快,同样模型用GPU(Tesla T4)一个Epoch需要800多秒,快了20到30倍,这还是bitchsize设置的比较小,所以TPU yyds!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CoLab设置使用GPU和TPU 的相关文章

  • 如何在 python-gensim 中使用潜在狄利克雷分配(LDA)来抽象二元组主题而不是一元组?

    LDA 原始输出 一元语法 主题1 水肺 水 蒸汽 潜水 主题2 二氧化物 植物 绿色 碳 所需输出 二元组主题 主题1 水肺潜水 水蒸气 主题2 绿色植物 二氧化碳 任何想法 鉴于我有一个名为docs 包含文档中的单词列表 我可以使用 n
  • NLTK CoreNLPDependencyParser:无法建立连接

    我正在尝试通过 NLTK 使用斯坦福解析器 按照示例here http www nltk org api nltk parse html nltk parse corenlp CoreNLPDependencyParser 20tutori
  • 在Python或Sklearn中用整数值对具有字符串值的列变量进行编码

    如何用整数值对数据表中字符串类型的列值进行编码 例如 我有两个特征变量 颜色 可能的字符串值 R G 和 B 和技能 可能的字符串值 C Java SQL 和 Python 给定数据表有两列 Color gt R G B B G R B G
  • 如何调整 NLTK 句子标记器

    我正在使用 NLTK 来分析一些经典文本 但我在按句子标记文本时遇到了麻烦 例如 这是我从以下内容中得到的片段莫比迪克 http www gutenberg org cache epub 2701 pg2701 txt import nlt
  • python 中单词的动名词形式

    我想获得字符串的动名词形式 我还没有找到调用库来获取动名词的直接方法 我应用了以 ing 结尾的单词的规则 但是因为异常导致我收到了一些错误 然后 我检查 cmu 单词以确保生成的动名词单词正确 代码如下 import cmudict im
  • 词干函数错误:词干需要一个位置参数

    这里的stem函数显示错误 指出stem需要循环中的一个位置参数 如所讨论的 from nltk stem import PorterStemmer as ps text my name is pythonly and looking fo
  • BERT - 池化输出与序列输出的第一个向量不同

    我在 Tensorflow 中使用 BERT 有一个细节我不太明白 根据文档 https tfhub dev google bert uncased L 12 H 768 A 12 1 https tfhub dev google bert
  • 生成易于记忆的随机标识符

    与所有开发人员一样 我们在日常工作中不断处理某种标识符 大多数时候 它与错误或支持票有关 我们的软件在检测到错误后 会创建一个包 该包的名称由时间戳和版本号格式化 这是创建合理唯一标识符以避免混淆包的一种廉价方法 例子 错误报告 20101
  • 如何提取数字(以及比较形容词或范围)

    我正在用 Python 开发两个 NLP 项目 它们都有类似的任务提取数值和比较运算符来自句子 如下所示 greater than 10 weight not more than 200lbs height in 5 7 feets fas
  • 如何确保用户只提交英文文本

    我正在构建一个涉及自然语言处理的项目 由于nlp模块目前只处理英文文本 所以我必须确保用户提交的内容 不长 只有几个单词 是英文的 是否有既定的方法来实现这一目标 首选 Python 或 Javascript 方式 如果内容足够长我会推荐一
  • NLTK 中的无监督 HMM 训练

    我只是想进行非常简单的无监督 HMM 训练nltk http www nltk org 考虑 import nltk trainer nltk tag hmm HiddenMarkovModelTrainer from nltk corpu
  • 快速NLTK解析成语法树

    我正在尝试将数百个句子解析为语法树 我需要快速完成 问题是如果我使用 NLTK 那么我需要定义一个语法 而我不知道我只知道它会是英语 我尝试使用this https github com emilmont pyStatParser统计解析器
  • 是否可以使用 Google BERT 来计算两个文本文档之间的相似度?

    是否可以使用 Google BERT 来计算两个文本文档之间的相似度 据我了解 BERT 的输入应该是有限大小的句子 一些作品使用 BERT 来计算句子的相似度 例如 https github com AndriyMulyar semant
  • 如何检测文本是否可读?

    我想知道是否有一种方法可以告诉给定的文本是人类可读的 我所说的人类可读的意思是 它有一些含义 格式就像某人写的文章 或者至少是由软件翻译器生成的供人类阅读的文章 这是背景故事 最近我正在制作一个应用程序 允许用户将短文本上传到数据库 在部署
  • 保存具有自定义前向功能的 Bert 模型并将其置于 Huggingface 上

    我创建了自己的 BertClassifier 模型 从预训练开始 然后添加由不同层组成的我自己的分类头 微调后 我想使用 model save pretrained 保存模型 但是当我打印它并从预训练上传时 我看不到我的分类器头 代码如下
  • 如何提取句子中的主语及其各自的从属短语?

    我正在尝试在句子中进行主题提取 以便我能够根据主题获得情感 我在用nltk在 python2 7 中用于此目的 以下面的句子为例 Donald Trump is the worst president of USA but Hillary
  • 斯坦福 CoreNLP:使用部分现有注释

    我们正在尝试利用现有的 代币化 句子分割 和命名实体标记 同时我们希望使用斯坦福 CoreNlp 额外为我们提供 词性标注 词形还原 和解析 目前 我们正在尝试以下方式 1 为 pos lemma parse 创建一个注释器 Propert
  • Lucene 标准分析器与 Snowball

    刚刚开始使用 Lucene Net 我使用标准分析器索引了 100 000 行 运行了一些测试查询 并注意到如果原始术语是单数 则复数查询不会返回结果 我知道雪球分析器增加了词干支持 这听起来不错 不过 我想知道 超过标准的雪球锣是否有任何
  • Keras:嵌入/向量的附加层?

    我有 3 个词嵌入 嵌入 1 w11 w12 w13 w14 嵌入 2 w21 w22 w23 w24 嵌入 3 w31 w32 w33 w34 有没有办法通过添加所有三个向量来获得第四个嵌入 并使用所有向量的可训练权重 例如 嵌入 4 w
  • 如何使用FeatureUnion转换PipeLine中的多个特征?

    我有一个 pandas 数据框 其中包含有关用户发送的消息的信息 对于我的模型 我感兴趣的是预测消息的缺失收件人 即给定消息的收件人 A B C 我想预测还有谁应该成为收件人的一部分 我正在使用 OneVsRestClassifier 和

随机推荐

  • Element 修改el-table自带样式

    1 修改el table选中当前行高亮的样式 deep el table body tr current row gt td background color fff important 2 修改el table当前行的hover样式 de
  • 视觉SLAM漫谈

    视觉SLAM漫谈 1 前言 开始做SLAM 机器人同时定位与建图 研究已经近一年了 从一年级开始对这个方向产生兴趣 到现在为止 也算是对这个领域有了大致的了解 然而越了解 越觉得这个方向难度很大 总体来讲有以下几个原因 入门资料很少 虽然国
  • 22黑马QT笔记之事件全总结

    22黑马QT笔记之事件全总结 1 每个控件重写过滤器 event函数 各个事件处理函数都一样 都是先类中声明 类外定义 2 每个控件都可以重写事件过滤器 但是他一般写在窗口 安装时参数要求继承QObject嘛 event函数和各个事件处理函
  • Flutter状态管理Provider,简单上手

    学习Flutter一段时间了 偶然看到大家都说状态管理 多数人都是用redux 对于一个Android开发人员来说之前根本没接触过 于是开始了解redux 之后又了解闲鱼推出的fish redux 然后又看到Vadaski发表的一系列关于F
  • ChatBox安装--ChatGPT的桌面客户端

    ChatBox 是什么 是开源的 ChatGPT API OpenAI API 桌面客户端 Prompt 的调试与管理工具 支持 Windows Mac 和 Linux gt github地址 下载链接 支持的平台 Windows 请下载
  • 设置QFrame的背景图片并不影响其子控件的效果

    项目建立完成后 右键点你的项目 Add New gt QT Resource file 生成一个qrc文件 然后双击它 点add 然后Add Prefix 再Add file 完事之后build一下 在你的ui上点右键 gt Change
  • 选择软件外包公司需要注意哪些方面

    每个行业中不同公司的实力都是良莠不齐 特别是IT软件外包公司更是如此 当我们一旦将整个项目交付对方之后 项目的成败就全看软件外包公司的表现 风险极大 那么 我们该如何选择一家靠谱的深圳软件外包公司 选择软件外包公司需要注意哪些方面 北京木奇
  • 刷脸支付让城市真正迈入智能化数字化新阶段

    众所周知 每一次通信时代的变革都会催生一系列新兴事物的发展 比如3G时代的到来让越来越多国人开始了解互联网 4G时代的普及 让互联网产业得到了前所未有的发展空间 而5G时代的来临 将进一步推动数字化工作的进程刷脸支付正是如此 让城市真正迈入
  • 二分查找--中间值取值原则

    在数组总长度为奇数时 二分查找的中间值就是数组中间的那个元素 例如 对于长度为5的数组 中间元素的下标为2 在数组总长度为偶数时 二分查找的中间值有两个 可以取任意一个作为中间值 一种常用的方法是取靠左的那个中间值 例如 对于长度为6的数组
  • Image Processing图像处理(对比俩张图像的差异并且在图上标注出来)

    图像处理是构建所有计算机视觉的基础 按照我的图像处理指南使用OpenCV库学习计算机视觉的基础知识 SSIM进阶 利用python openCV将图片的差异性画框展示出来 诀窍是学习如何准确地确定在 x y 坐标位置上 图像的差异在哪里 使
  • shader学习网站

    https www shadertoy com https shaderfrog com http glslb in http glslsandbox com
  • Linux网络网卡配置相关知识记录

    Linux系统网络相关配置 1 网卡配置文件说明 2 使用 ifconfig 配置网卡 3 配置 DNS 地址 3 1 编辑 etc hosts 文件 在空白处输入 3 2 编辑 DNS 配置文件 4 确定 linux 服务器哪个网卡对应哪
  • MyTinyStl源码刨析

    文章目录 源码信息及目录 启动项目 迭代器 分配器 算法 容器实现 测试框架Test 源码信息及目录 MyTinySTL 项目地址 该项目实现了C 的stl库 阅读该项目可以使我们对stl的底层有更深入的认识 同时可以增强我们的c 的内功
  • 配置使用Eslint的时候 版本错误 "eslint": "5.6.0" a different version of eslint was detected higher up in the tr

    1 如果你也遇到下面的问题 你可以 按照命令行提示的那样 下面这四步完成的一般就可以了 但是不排除你在运行的时候忘记下载某些依赖 1 删除 package lock json 不是package json 你可以选择 yarn lock 或
  • W800开发板

    目录 概况 下载工具链编译工具 查看wsl版本 wsl所采用的工具链 添加工具链bin到环境变量中 编译 接口说明 概况 海凌科W800开发板 HLK W800 KIT 是海凌科电子面向开发者针对联盛德W800 芯片推出的一款多功能开发板
  • 服务器修改动态磁盘,服务器数据库使用动态磁盘

    服务器数据库使用动态磁盘 内容精选 换一换 云服务器备份 云服务器备份可以对普通服务器进行整机备份或部分磁盘备份 不适用于部署了数据库等应用的服务器 支持备份弹性云服务器ECS和裸金属服务器BMS 成本相对于VBS较高 适合对需要备份整个服
  • for循环执行顺序

    for循环的表达式一般如下 for 表达式1 表达式2 表达式3 表达式4 执行的顺序为 1 第一次循环 即初始化循环 首先执行表达式1 一般为初始化语句 再执行表达式2 一般为条件判断语句 判断表达式1是否符合表达式2的条件 如果符合 则
  • JDK1.6官方下载_JDK6官方下载

    JDK1 6官方下载 JDK6官方下载 JDK1 6官方下载 JDK6官方下载地址 http www java net download jdk6 6u10 promoted b32 binaries jdk 6u10 rc2 bin b3
  • 【Java基础】泛型记录概要

    泛型记录概要 泛型出现重要原因之一 创造容器类 泛型主要目的之一 指定容器持有什么类型的对象 保证编译的正确性 泛型简单实例 class GenericsClass
  • CoLab设置使用GPU和TPU

    tf2 4 0 from tensorflow python keras callbacks import EarlyStopping from tensorflow python keras layers import Embedding