基于Python和TensorFlow实现BERT模型应用

本文分享自华为云社区《使用Python实现深度学习模型:BERT模型教程》,作者: Echo_Wish。

BERT(Bidirectional Encoder Representations from Transformers)是Google提出的一种用于自然语言处理(NLP)的预训练模型。BERT通过双向训练Transformer,能够捕捉到文本中词语的上下文信息,是NLP领域的一个里程碑。

在本文中,我们将详细介绍BERT模型的基本原理,并使用Python和TensorFlow实现一个简单的BERT模型应用。

1. BERT模型简介

1.1 Transformer模型复习

BERT基于Transformer架构。Transformer由编码器(Encoder)和解码器(Decoder)组成,但BERT只使用编码器部分。编码器的主要组件包括:

多头自注意力机制(Multi-Head Self-Attention):计算序列中每个位置对其他位置的注意力分数。
前馈神经网络(Feed-Forward Neural Network):对每个位置的表示进行独立的非线性变换。

1.2 BERT的预训练与微调

BERT的训练分为两步:

预训练(Pre-training):在大规模语料库上进行无监督训练,使用两个任务:

  • 遮蔽语言模型(Masked Language Model, MLM):随机遮蔽输入文本中的一些词,并要求模型预测这些被遮蔽的词。
  • 下一句预测(Next Sentence Prediction, NSP):给定句子对,预测第二个句子是否是第一个句子的下文。

微调(Fine-tuning):在特定任务上进行有监督训练,如分类、问答等。

2. 使用Python和TensorFlow实现BERT模型

2.1 安装依赖

首先,安装必要的Python包,包括TensorFlow和Transformers(Hugging Face的库)。

pip install tensorflow transformers

2.2 加载预训练BERT模型

我们使用Hugging Face的Transformers库加载预训练的BERT模型和对应的分词器(Tokenizer)。

复制代码

import tensorflow as tf
from transformers import BertTokenizer, TFBertModel

# 加载预训练的BERT分词器和模型
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
model = TFBertModel.from_pretrained('bert-base-uncased')

复制代码

2.3 数据预处理

我们将使用一个简单的句子分类任务作为示例。假设我们有以下数据:

sentences = ["I love machine learning.", "BERT is a powerful model.", "I enjoy studying AI."]
labels = [1, 1, 1]  # 假设1表示积极,0表示消极

我们需要将句子转换为BERT输入格式,包括输入ID、注意力掩码等。

复制代码

# 将句子转换为BERT输入格式
input_ids = []
attention_masks = []

for sentence in sentences:
    encoded_dict = tokenizer.encode_plus(
                        sentence,                      # 输入文本
                        add_special_tokens = True,     # 添加特殊[CLS]和[SEP]标记
                        max_length = 64,               # 填充和截断长度
                        pad_to_max_length = True,
                        return_attention_mask = True,  # 返回注意力掩码
                        return_tensors = 'tf'          # 返回TensorFlow张量
                   )
    
    input_ids.append(encoded_dict['input_ids'])
    attention_masks.append(encoded_dict['attention_mask'])

input_ids = tf.concat(input_ids, axis=0)
attention_masks = tf.concat(attention_masks, axis=0)
labels = tf.convert_to_tensor(labels)

复制代码

2.4 构建BERT分类模型

我们在预训练的BERT模型基础上添加一个分类层。

复制代码

from tensorflow.keras.layers import Dense
from tensorflow.keras.models import Model

class BertClassifier(Model):
    def __init__(self, bert):
        super(BertClassifier, self).__init__()
        self.bert = bert
        self.dropout = tf.keras.layers.Dropout(0.3)
        self.classifier = Dense(1, activation='sigmoid')

    def call(self, input_ids, attention_mask):
        outputs = self.bert(input_ids, attention_mask=attention_mask)
        pooled_output = outputs[1]
        pooled_output = self.dropout(pooled_output)
        return self.classifier(pooled_output)

# 实例化BERT分类模型
bert_classifier = BertClassifier(model)

复制代码

2.5 编译和训练模型

编译模型并进行训练。

复制代码

# 编译模型
optimizer = tf.keras.optimizers.Adam(learning_rate=2e-5)
loss = tf.keras.losses.BinaryCrossentropy()
metric = tf.keras.metrics.BinaryAccuracy()

bert_classifier.compile(optimizer=optimizer, loss=loss, metrics=[metric])

# 训练模型
bert_classifier.fit([input_ids, attention_masks], labels, epochs=3, batch_size=2)

复制代码

2.6 评估模型

训练完成后,我们可以对新数据进行预测。

复制代码

# 预测新句子
new_sentences = ["AI is fascinating.", "I dislike machine learning."]
new_input_ids = []
new_attention_masks = []

for sentence in new_sentences:
    encoded_dict = tokenizer.encode_plus(
                        sentence,
                        add_special_tokens = True,
                        max_length = 64,
                        pad_to_max_length = True,
                        return_attention_mask = True,
                        return_tensors = 'tf'
                   )
    
    new_input_ids.append(encoded_dict['input_ids'])
    new_attention_masks.append(encoded_dict['attention_mask'])

new_input_ids = tf.concat(new_input_ids, axis=0)
new_attention_masks = tf.concat(new_attention_masks, axis=0)

# 进行预测
predictions = bert_classifier.predict([new_input_ids, new_attention_masks])
print(predictions)

复制代码

3. 总结

在本文中,我们详细介绍了BERT模型的基本原理,并使用Python和TensorFlow实现了一个简单的BERT分类模型。通过本文的教程,希望你能够理解BERT模型的工作原理和实现方法,并能够应用于自己的任务中。随着对BERT模型的理解加深,你可以尝试实现更复杂的任务,如问答系统、命名实体识别等。标注图片来源:https://ljkc.yushengbang.com/qzzx/Hon20OVe9R.html 标注图片来源:https://cxmb.twitdw.com/huankuan/9euJIyEExY.html 标注图片来源:https://cxfx.nuochengzx.com/caijing/ZeiZyta3Jp.html 标注图片来源:https://czm.oszine.com/xingye/1AlMrCRUzXeH.html 标注图片来源:https://cdh.twitdw.com/yuqi/lpNTn5SIq7.html 标注图片来源:https://cxmb.twitdw.com/shangan/GePTX8p4Nc.html 标注图片来源:https://hcx.twitdw.com/gezhai/0jZEzwZqXd.html 标注图片来源:https://cxzy.oszine.com/jinyin/Kf8VXiHCYk.html 标注图片来源:https://cxmb.twitdw.com/huankuan/5SPMSMd3nQ.html 标注图片来源:https://cdh.twitdw.com/pingtai/g90PKHgMVR.html 标注图片来源:https://czwj.nuochengzx.com/xingye/D4wwjRkDku.html 标注图片来源:https://czwj.nuochengzx.com/baoxian/wKnVsqGzHV.html 标注图片来源:https://cxgd.yijiandaixiao.com/yuqi/Mcsam9UYoL.html 标注图片来源:https://czwj.nuochengzx.com/caijing/fHVuWf2dXX.html 标注图片来源:https://www.qqkjcj.com/360jtlxdsj3wlxdsjrqwdyjh.html 标注图片来源:https://cxzy.oszine.com/yuqi/vBlZ0iyxjo.html 标注图片来源:https://jmgc.nuochengzx.com/xinyong/bJwVocNeXC.html 标注图片来源:https://www.qqkjcj.com/qyxxykqshdjhbzxnjrjmykbz.html 标注图片来源:https://czm.oszine.com/jinmenggongchang 标注图片来源:https://cxfx.nuochengzx.com/licai/Zc8mMQI3SK.html 标注图片来源:https://cxfx.nuochengzx.com/yuqi/kmwKy9SfKZ.html 标注图片来源:https://cdh.twitdw.com/danbao/SzD6H919K1.html 标注图片来源:https://cxfx.nuochengzx.com/caijing/c1WpnSgbUf.html 标注图片来源:https://cxgd.yijiandaixiao.com/yuqi/NF68Dwux0v.html 标注图片来源:https://jzxy.yingtailawyer.com/fuwu/FPqPmet990.html 标注图片来源:https://jzxy.yingtailawyer.com/wenda/LzdWaAWmMl.html 标注图片来源:https://czm.oszine.com/wenda/oxosUTZjUFR7.html 标注图片来源:https://czk.yingtailawyer.com/shenka/dB9pBuLOI9.html 标注图片来源:https://cdh.twitdw.com/hunyin/hbG5Rh09Fi.html 标注图片来源:https://www.qqkjcj.com/jdjrcklshkwzxnjmbl.html 标注图片来源:https://cxfx.nuochengzx.com/yuqi/b1eJyxfgST.html 标注图片来源:https://cxzy.oszine.com/gezhai/A22fGTi8pU.html 标注图片来源:https://jmgc.nuochengzx.com/caiwu/g6pyrVqlFI.html 标注图片来源:https://czwj.nuochengzx.com/jinrong/mfPnNSnENM.html 标注图片来源:https://czwj.nuochengzx.com/jinrong/0m8XXhzOTX.html 标注图片来源:https://czm.oszine.com/jinrong/T5FFQiJL1XU7.html 标注图片来源:https://cxzy.oszine.com/yuqi/VTxEpCbWTV.html 标注图片来源:https://cxfx.nuochengzx.com/licai/LcoSamUxzn.html 标注图片来源:https://cdh.twitdw.com/qita/8jLvrs3PAB.html 标注图片来源:https://czk.yingtailawyer.com/zhaiwu/6LtEuUmtFk.html 标注图片来源:https://hcx.twitdw.com/anli/MHOZqR5MYO.html 标注图片来源:https://hcx.twitdw.com/kuaiwen/aImib6kykQ.html 标注图片来源:https://cxzy.oszine.com/shenghuo/qKcYjSiPJx.html 标注图片来源:https://cdh.twitdw.com/fangchan/BDjxmzZCsx.html 标注图片来源:https://hcx.twitdw.com/lihun/31bmTZVc9Y.html 标注图片来源:https://czwj.nuochengzx.com/zhishi/C91GXx6qov.html 标注图片来源:https://cxfx.nuochengzx.com/licai/5yOf97sZg1.html 标注图片来源:https://cxfx.nuochengzx.com/yuqi/oFTmQVs4qY.html 标注图片来源:https://czk.yingtailawyer.com/zhaiwu/ft4LQFsTqW.html 标注图片来源:https://czm.oszine.com/toutiao/YKNl8BJDiZG3.html 标注图片来源:https://cxmb.twitdw.com/zhaiwu/qg3E7HwIZD.html 标注图片来源:https://cdh.twitdw.com/qita/khCsH91JBF.html 标注图片来源:https://czwj.nuochengzx.com/caijing/PPcAMdIV4o.html 标注图片来源:https://cxzy.oszine.com/ 标注图片来源:https://czm.oszine.com/zhaiwu/g9w6jDcV7Nnz.html 标注图片来源:https://jmgc.nuochengzx.com/zhaiwu/0MaHAf9TUy.html 标注图片来源:https://czm.oszine.com/xingye/eQkSyXcrelp6.html 标注图片来源:https://czm.oszine.com/zhaiwu/YqWhZR3sIRkn.html 标注图片来源:https://hcx.twitdw.com/lihun/n4OCIocwpF.html 标注图片来源:https://czk.yingtailawyer.com/zhaiwu/AU7QTwKmSx.html 标注图片来源:https://jlxj.yingtailawyer.com/caifu/5Szad3zIul.html 标注图片来源:https://cxzy.oszine.com/yuqi/J4cR3Hhsoe.html 标注图片来源:https://czm.oszine.com/xingye/BZj8TEoBUIrz.html 标注图片来源:https://cxfx.nuochengzx.com/zhaiwu/NkYo1UCRqF.html 标注图片来源:https://ljkc.yushengbang.com/cczs/m2FBBxknlF.html 标注图片来源:https://hcx.twitdw.com/anli/KJSz4ALnbP.html 标注图片来源:https://czm.oszine.com/zhishi/PPbaKvJzhVfX.html 标注图片来源:https://czk.yingtailawyer.com/baike/prpJKgD2tr.html 标注图片来源:https://www.qqkjcj.com/qxykxshbjzmtpbwjrlzjs.html 标注图片来源:https://cxmb.twitdw.com/huankuan/gWDr1qzYss.html 标注图片来源:https://cxmb.twitdw.com/zhaiwu/UYuKIHsVef.html 标注图片来源:https://jzxy.yingtailawyer.com/fuwu/KHnbPZeuba.html 标注图片来源:https://cxmb.twitdw.com/daikuan/IDM88yrSX3.html 标注图片来源:https://cxzy.oszine.com/jinyin/ifflvmJT5D.html 标注图片来源:https://czk.yingtailawyer.com/baike/uD5Sjk3QLq.html 标注图片来源:https://czk.yingtailawyer.com/shenka/NZHefAx6gC.html 标注图片来源:https://cxzy.oszine.com/zhaiwu/d4j0UID2yv.html 标注图片来源:https://czm.oszine.com/caijing/hitA52tFVjnI.html 标注图片来源:https://cdh.twitdw.com/pingtai/5G3ZUjU2BK.html 标注图片来源:https://cxzy.oszine.com/gezhai/pUuLYOguFr.html 标注图片来源:https://cxmb.twitdw.com/daikuan/2GqDdrzLJn.html 标注图片来源:https://czk.yingtailawyer.com/zhaiwu/akk7ClDQkp.html 标注图片来源:https://cdh.twitdw.com/qita/VeIToYRmQs.html 标注图片来源:https://ljkc.yushengbang.com/gzzs/fsYroRkypP.html 标注图片来源:https://cxzy.oszine.com/shenghuo/He9ZNiB1Vq.html 标注图片来源:https://jmgc.nuochengzx.com/zhaiwu/Q7mha3XiQ9.html 标注图片来源:https://czwj.nuochengzx.com/caijing/5TWvGsf7Dh.html 标注图片来源:https://cxmb.twitdw.com/xieshang/Mjoq5Fem09.html 标注图片来源:https://czk.yingtailawyer.com/zhaiwu/Oiru3Sttx8.html 标注图片来源:https://czwj.nuochengzx.com/baoxian/2tO55wd85f.html 标注图片来源:https://cxzy.oszine.com/shenghuo/B7Md6He6AO.html 标注图片来源:https://czwj.nuochengzx.com/xingye/FFzYNjVYQO.html 标注图片来源:https://czk.yingtailawyer.com/shenka/CmTbw4XkC7.html 标注图片来源:https://ljkc.yushengbang.com/zsjf/MIsCpL1QKL.html 标注图片来源:https://ljkc.yushengbang.com/zsjf/RCAuLzrYTO.html 标注图片来源:https://www.qqkjcj.com/zfbnbnyqhkzyjdydqp.html 标注图片来源:https://jmgc.nuochengzx.com/xinyong/UqiktjoHmX.html 标注图片来源:https://cdjt.yijiandaixiao.com/zhaiwuyujing 标注图片来源:https://czwj.nuochengzx.com/zhishi/X5LvV2Ugty.html 标注图片来源:https://cxmb.twitdw.com/daikuan/yMwn9fH8aZ.html 标注图片来源:https://cxfx.nuochengzx.com/zhaiwu/vMptU1OGJm.html 标注图片来源:https://cdh.twitdw.com/geren/Hd6b95MWYn.html 标注图片来源:https://cxzy.oszine.com/jinyin/oTdMBT7vcy.html 标注图片来源:https://jmgc.nuochengzx.com/caiwu/z7LU0ITmrF.html 标注图片来源:https://cdh.twitdw.com/qita/JWiSjT1HSI.html 标注图片来源:https://cxgd.yijiandaixiao.com/yuqi/For1ZxsyMo.html 标注图片来源:https://ljkc.yushengbang.com/jrzs/NdHCLM6ztT.html 标注图片来源:https://czwj.nuochengzx.com/jinrong/yI6PPpCltp.html 标注图片来源:https://www.qqkjcj.com/jxxykyq1tyyxmjrjmykbz.html 标注图片来源:https://hcx.twitdw.com/xinyong/xWI875f5cd.html 标注图片来源:https://jmgc.nuochengzx.com/pochan/4a1094Vu7C.html 标注图片来源:https://cxgd.yijiandaixiao.com/yuqi/zFHPq0jl9K.html 标注图片来源:https://cxzy.oszine.com/zhaiwu/o8nAQORtDl.html 标注图片来源:https://czm.oszine.com/redian/1diZHw4Sent2.html 标注图片来源:https://cxfx.nuochengzx.com/caijing/KRhiL5yPDF.html 标注图片来源:https://hcx.twitdw.com/xinyong/S9w3nQMWKB.html 标注图片来源:https://ljkc.yushengbang.com/zsjf/fAZZweSBe9.html 标注图片来源:https://jmgc.nuochengzx.com/huankuan 标注图片来源:https://jmgc.nuochengzx.com/xinyong/X00KUr4Xw3.html 标注图片来源:https://cxzy.oszine.com/yuqi/XV2bGJmqez.html 标注图片来源:https://cxzy.oszine.com/jinyin/Xat2MFFoYB.html 标注图片来源:https://czk.yingtailawyer.com/shenka/XIqyLTTM2K.html 标注图片来源:https://hcx.twitdw.com/yuqi/yHtly2uVCd.html 标注图片来源:https://jzxy.yingtailawyer.com/fuwu/d71knfXlQ7.html 标注图片来源:https://jmgc.nuochengzx.com/pochan/JyOOJnLEnw.html 标注图片来源:https://czwj.nuochengzx.com/jinrong/7Pa8ECF0Bx.html 标注图片来源:https://czm.oszine.com/zhishi/2HEBfxpGozwq.html 标注图片来源:https://czwj.nuochengzx.com/shenghuo/cPQQbBzg7K.html 标注图片来源:https://ljkc.yushengbang.com/jrsc/nKy3jlQd3e.html 标注图片来源:https://hcx.twitdw.com/anli/k5iAkLhIM3.html 标注图片来源:https://jlxj.yingtailawyer.com/caifu/Mwh2sqIzZ3.html 标注图片来源:https://czm.oszine.com/redian 标注图片来源:https://czm.oszine.com/caijing/xp4l1s70eLUi.html 标注图片来源:https://czm.oszine.com/wenda/yOHVwdhQJldN.html 标注图片来源:https://cxzy.oszine.com/zhaiwu/UPw4b0b6uy.html 标注图片来源:https://hcx.twitdw.com/shangan/qeMGMW6GD0.html 标注图片来源:https://czwj.nuochengzx.com/baoxian/6EqUYCOteq.html 标注图片来源:https://ljkc.yushengbang.com/jrsc/VkMeM6xb18.html 标注图片来源:https://cdh.twitdw.com/qita/5PnJ2kD1Ng.html 标注图片来源:https://cxzy.oszine.com/gezhai/wjgJnhAqhR.html 标注图片来源:https://czm.oszine.com/wenda/8swb4kgZG9zN.html 标注图片来源:https://ljkc.yushengbang.com/cczs/RHWiuXWzcW.html 标注图片来源:https://cxzy.oszine.com/yuqi/7qEFF6RLRQ.html 标注图片来源:https://hcx.twitdw.com/anli/Owyf62Y7S5.html 标注图片来源:https://jmgc.nuochengzx.com/zhaiwu/NCZ5RjZz0l.html 标注图片来源:https://cdh.twitdw.com/qiye/adJjWe7A9Y.html 标注图片来源:https://czwj.nuochengzx.com/xingye/3Z6ifyigEn.html 标注图片来源:https://cxzy.oszine.com/zhaiwu/4064QFDK8m.html 标注图片来源:https://cdh.twitdw.com/fangchan/83vt9csnyS.html 标注图片来源:https://cxmb.twitdw.com/xieshang/VGgPMZWKiM.html 标注图片来源:https://cdh.twitdw.com/yuqi/0ldXJWBF8D.html 标注图片来源:https://www.qqkjcj.com/klkfqdkyqsdpxydjm.html 标注图片来源:https://hcx.twitdw.com/lihun/h445BfOdld.html 标注图片来源:https://jqtc.yijiandaixiao.com/yuqi/kAjuLUDjtS.html 标注图片来源:https://cdh.twitdw.com/danbao/ki9P27ZeS2.html 标注图片来源:https://czwj.nuochengzx.com/xingye/gHLmspcZN2.html 标注图片来源:https://czm.oszine.com/toutiao/BXTxqLDhcAm5.html 标注图片来源:https://cxzy.oszine.com/shenghuo/7OTPT2bvZi.html 标注图片来源:https://czk.yingtailawyer.com/zhaiwu/ZePZx8t3Xx.html 标注图片来源:https://cxfx.nuochengzx.com/zhaiwu/G51sGK8ZJu.html 标注图片来源:https://hcx.twitdw.com/gezhai/Laxm11ft3x.html 标注图片来源:https://czwj.nuochengzx.com/xingye/mQbWxzpSoT.html 标注图片来源:https://czwj.nuochengzx.com/caijing/rJAlSgDXDz.html 标注图片来源:https://hcx.twitdw.com/gezhai/AiTsQGMSMF.html 标注图片来源:https://hcx.twitdw.com/zhengxin/H7VBlB2C8G.html 标注图片来源:https://jzxy.yingtailawyer.com/fuwu/6ANxxpHJVI.html 标注图片来源:https://cxfx.nuochengzx.com/zhaiwu/4xEorHGlj6.html 标注图片来源:https://cxfx.nuochengzx.com/licai/xFUPr0f7uo.html 标注图片来源:https://ljkc.yushengbang.com/gzzs/ScdCHpmf8Y.html 标注图片来源:https://jmgc.nuochengzx.com/xinyong/ueMolQSGzs.html 标注图片来源:https://jxtx.oszine.com/gezhai/GBnsHed7Vu.html 标注图片来源:https://cxfx.nuochengzx.com/zhaiwu/x0vk7NGO7v.html 标注图片来源:https://www.qqkjcj.com/wdkyxsmtop1jd.html 标注图片来源:https://czwj.nuochengzx.com/caijing/gwIMDTse1u.html 标注图片来源:https://cdh.twitdw.com/danbao/OhDgvXxzfo.html 标注图片来源:https://ljkc.yushengbang.com/jrsc/rj5U9BPPFQ.html 标注图片来源:https://ljkc.yushengbang.com/cczs/LWKSQIhgeK.html 标注图片来源:https://czwj.nuochengzx.com/shenghuo/Bjmf3Yprvj.html 标注图片来源:https://czk.yingtailawyer.com/baike/FdHKrGVhK2.html 标注图片来源:https://cxmb.twitdw.com/shangan/L5mqWUHGJ3.html 标注图片来源:https://jmgc.nuochengzx.com/pochan/tzAVIioyVc.html 标注图片来源:https://cxzy.oszine.com/zhaiwu/zZJFoWQnV9.html 标注图片来源:https://cxmb.twitdw.com/huankuan/j0PTUm7W6I.html 标注图片来源:https://czk.yingtailawyer.com/baike/WNzZUTpH0x.html 标注图片来源:https://ljkc.yushengbang.com/gzzs/euNBWZCIip.html 标注图片来源:https://cdh.twitdw.com/geren/Tz7wwz0faV.html 标注图片来源:https://cxfx.nuochengzx.com/caijing/i34bv4Bpa7.html 标注图片来源:https://czwj.nuochengzx.com/shenghuo/Btjp58VWp3.html 标注图片来源:https://cxfx.nuochengzx.com/yuqi/gMcRMRfBFg.html 标注图片来源:https://jzxy.yingtailawyer.com/wenda/MNZGVXihVB.html 标注图片来源:https://cdh.twitdw.com/danbao/PGwVzN9QbD.html 标注图片来源:https://czm.oszine.com/wenda/MwwQwqZ8Civs.html 标注图片来源:https://czwj.nuochengzx.com/zhishi/RURfyiKRK8.html 标注图片来源:https://cxmb.twitdw.com/xieshang/ByrqEeGkIG.html 标注图片来源:https://ljkc.yushengbang.com/qzzx/TpPYeHlYlI.html 标注图片来源:https://cxzy.oszine.com/zhaiwu/2itAB99tUN.html 标注图片来源:https://cdh.twitdw.com/fangchan/wi0mgqo2GF.html 标注图片来源:https://czwj.nuochengzx.com/jinrong/N6ArmntPFg.html 标注图片来源:https://cxfx.nuochengzx.com/zhaiwu/sET0ZlrNC4.html 标注图片来源:https://www.qqkjcj.com/jbqkyqhbqsmfyzmpqwzzyyjs.html 标注图片来源:https://jzxy.yingtailawyer.com/fuwu/2KCwoP9jRD.html 标注图片来源:https://jzxy.yingtailawyer.com/wenda/8YkK21NF5U.html 标注图片来源:https://czm.oszine.com/zhishi/OHToXthcAVZs.html 标注图片来源:https://czk.yingtailawyer.com/zhaiwu/27Y9eVYg5Y.html 标注图片来源:https://cxmb.twitdw.com/xieshang/gWFG5QipTN.html 标注图片来源:https://czwj.nuochengzx.com/caijing 标注图片来源:https://czk.yingtailawyer.com/shenka/6LNpU1afas.html 标注图片来源:https://cdh.twitdw.com/yuqi/MSQTawUw7Q.html 标注图片来源:https://ljkc.yushengbang.com/gzzs/tLtkJumLzG.html 标注图片来源:https://cxfx.nuochengzx.com/zhaiwu/7w0BBDaXry.html 标注图片来源:https://ljkc.yushengbang.com/jrsc/FDNIErPxip.html 标注图片来源:https://jmgc.nuochengzx.com/zhaiwu/muBzo4du7a.html 标注图片来源:https://jmgc.nuochengzx.com/zhaiwu/h4f3kUByUs.html 标注图片来源:https://czwj.nuochengzx.com/xingye/RhwpwFSKVj.html 标注图片来源:https://czwj.nuochengzx.com/jinri/y0CS2lh4fJ.html 标注图片来源:https://cxgd.yijiandaixiao.com/yuqi/DxLxrrri2K.html 标注图片来源:https://cxzy.oszine.com/yuqi/xuDpyCrarp.html 标注图片来源:https://hcx.twitdw.com/xinyong/psTYKQz2kN.html 标注图片来源:https://ljkc.yushengbang.com/jrsc/suXbfUdADn.html 标注图片来源:https://jzxy.yingtailawyer.com/wenda/Uok12KHaGN.html

点击关注,第一时间了解华为云新鲜技术~

  • 19
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值