【全球新要闻】稳定扩散模型训练:如何构建一个“初始模型”
【资料图】
稳定扩散模型最早也是最重要的一步,构建一个初始模型。初始模型可以是任何用于文本处理模型,也就是说:对于给定的图片描述,描述的文本经过压缩和比对和匹配。一般的常用初始模型有:
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模型比较流行的原因。
更多精彩内容持续分享,欢迎关注和收藏。
关键词:
下一篇:最后一页
广告
X 关闭
X 关闭
-
京张高铁每日开行17对冬奥列车
京张高铁每日开行17对冬奥列车 预计冬奥服务保障期运送运动员、技术官员、持票观众等20万人次 2月6日,2022北京新闻中心举行“北
-
北京冬奥会开幕式上 小学生朱德恩深情演绎《我和我的祖国》
北京冬奥会开幕式上 小学生朱德恩深情演绎《我和我的祖国》 9岁小号手苦练悬臂吹响颂歌 2月4日晚,在北京冬奥会开幕式上,9岁的
-
2022北京冬奥会开幕式这19首乐曲串烧不简单
多名指挥家列曲目单 再由作曲家重新编曲 本报专访冬奥开幕式音乐总监赵麟 开幕式这19首乐曲串烧不简单 “二十四节气”倒计时、
-
“一墩难求” 冰墩墩引爆购买潮
设计师:没想到冰墩墩成“爆款” “一墩难求”冰墩墩引爆购买潮 北京冬奥组委:会源源不断供货 北京冬奥会吉祥物“冰墩墩”近日
