【全球新要闻】稳定扩散模型训练:如何构建一个“初始模型”

时间:2023-04-21 05:45:32    来源:练习生偶像


【资料图】

稳定扩散模型最早也是最重要的一步,构建一个初始模型。初始模型可以是任何用于文本处理模型,也就是说:对于给定的图片描述,描述的文本经过压缩和比对和匹配。一般的常用初始模型有:

LSTM模型:采用LSTM网络构建序列分类模型,可以用于文本分类。例如,可以采用Embedding层、LSTM层和Dense层构建的模型。 CNN模型:采用CNN网络构建文本分类模型。例如,可以采用Embedding层、Conv1D层、MaxPool1D层和Dense层构建的模型。 BERT模型:采用预训练语言模型BERT构建文本分类模型。可以采用BERT模型加上分类头(Dense层)的方式。 Transformer模型:采用Transformer编码器构建文本分类模型。例如,可以采用Embedding层、多头注意力层和前馈神经网络层构建的模型。

除了上述几种,还可以考虑RNN、GRU、FastText等用于构建初始分类或聚类模型。构建初始模型时,需要确定模型结构(如LSTM、CNN或BERT)、网络层数、节点数等超参数。同时需要对数据进行处理,如词嵌入、序列Padding等。然后使用训练数据对模型进行随机初始化和训练。得到初始模型后,我们就可以开始对其应用稳定扩散模型,通过添加噪音和重新训练,使其趋于稳定。

如图所示,一个从初始模型输入到添加噪声的示例:

稳定扩散模型没有对初始模型的要求,我们可以根据任务和数据选择合适的模型结构进行初始化,构建一个基本可行的初始模型。然后采用噪音训练的方式进行优化和改进,这也是稳定扩散模型的精髓所在。目前最流行AI绘图工具的就是使用第4种:Transformer模型。

下面是Transformer创作的一些示例:

读者朋友们有兴趣的话,可以通过下面的代码理解这个初始模型:

import tensorflow as tfclass TransformerEncoder(tf.keras.layers.Layer):    def __init__(self, num_layers, d_model, num_heads, dff, input_vocab_size,                  maximum_position_encoding, rate=0.1):        super(TransformerEncoder, self).__init__()        self.d_model = d_model        self.num_layers = num_layers                # Embedding        self.embedding = tf.keras.layers.Embedding(input_vocab_size, d_model)                # Positional Encoding        self.pos_encoding = positional_encoding(maximum_position_encoding, d_model)                # Encoder        self.enc_layers = [EncoderLayer(d_model, num_heads, dff, rate)                            for _ in range(num_layers)]            # Dropout        self.dropout = tf.keras.layers.Dropout(rate)            def call(self, x, training, mask):            seq_len = tf.shape(x)[1]                # Adding embedding and position encoding.        x = self.embedding(x)  # (batch_size, input_seq_len, d_model)        x *= tf.math.sqrt(tf.cast(self.d_model, tf.float32))        x += self.pos_encoding[:, :seq_len, :]        x = self.dropout(x, training=training)                for i in range(self.num_layers):            x = self.enc_layers[i](x, training, mask)        return x  # (batch_size, input_seq_len, d_model)

该Transformer模型具有以下主要特点:

采用Embedding层和Positional Encoding来获得词嵌入和位置编码。 Encoder由多层EncoderLayer堆叠组成,每层都含有Multi-Head Attention和前馈神经网络。 Multi-Head Attention能够关注句子中不同位置的内容,这样可以 capture 句子中不同部分的依赖关系。 Dropout用来防止过拟合。 通过使用Mask避免模型看到Padding部分的表示。

整个编码器可以提取输入序列的上下文语义信息,这些信息在后续解码器中使用。

这个简单的Transformer编码器示例展示了Transformer编解码模型的基本思想,包括Multi-Head Attention机制、Positional Encoding、Embedding等,具有较强的表示学习和泛化能力,这也是AI绘图使用Transformer模型比较流行的原因。

更多精彩内容持续分享,欢迎关注和收藏。

关键词:

文章推荐

  • 【全球新要闻】稳定扩散模型训练:如何构建一个“初始模型”

    稳定扩散模型最早也是最重要的一步,构建一个初始模型。初始模型可以是任何用于文本处理模型,也就是说:对

    练习生偶像 2023-04-21
  • “硬核老爸”为儿子造8辆火车,只因……

    受语言障碍、社交障碍、行为异常影响,有一群孩子常常无法正常上学,需要照顾者长期陪伴。他们就是孤独症

  • 财报速递:立方数科2022年全年净亏损1.40亿元,总体财务状况较差-全球今日讯

    4月21日,A股上市公司立方数科发布2022年全年业绩报告。其中,净亏损1 40亿元,止盈转亏。根据同花顺财务诊

    同花顺iNews 2023-04-21
  • 立即停止,当场疏散学生!教育部最新公布

    今天教育部官网公布近期各地处理的几起学科类隐形变异违规培训典型案例▼近期,全国各地深入贯彻中央“双减

    东南网 2023-04-21
  • 女博士的作者(女博士的风流韵事)

    大家好,小乐来为大家解答以上的问题。女博士的作者,女博士的风流韵事这个很多人还不知道,现在让我们一起来

    乐拇指 2023-04-21
  • 广告

    X 关闭

    X 关闭

  • 众测
  • more+

    京张高铁每日开行17对冬奥列车

      京张高铁每日开行17对冬奥列车  预计冬奥服务保障期运送运动员、技术官员、持票观众等20万人次  2月6日,2022北京新闻中心举行“北

    北京冬奥会开幕式上 小学生朱德恩深情演绎《我和我的祖国》

      北京冬奥会开幕式上 小学生朱德恩深情演绎《我和我的祖国》  9岁小号手苦练悬臂吹响颂歌  2月4日晚,在北京冬奥会开幕式上,9岁的

    2022北京冬奥会开幕式这19首乐曲串烧不简单

      多名指挥家列曲目单 再由作曲家重新编曲 本报专访冬奥开幕式音乐总监赵麟  开幕式这19首乐曲串烧不简单  “二十四节气”倒计时、

    “一墩难求” 冰墩墩引爆购买潮

      设计师:没想到冰墩墩成“爆款”  “一墩难求”冰墩墩引爆购买潮 北京冬奥组委:会源源不断供货  北京冬奥会吉祥物“冰墩墩”近日