pycharm百度翻译账号无效的付款方式是什么意思

我有逛豆瓣社区的习惯,因此不经意间会看到一些外文翻译成中文书的评价。“书是好书,翻译太臭”、“中文版别看”、“有能力尽量看原版”…在翻译PP-OCR的时候,我有认真校对每一句话,但难免有一些歧义在里头,比如 Ablation study of PACT quantization for text /question//answer/

打算详细深入了解bert和transform的原理和源代码,先从基于attention的seq2seq学起,代码来自//p/的文章,原文是对LSTM模块的这俩参数的设置,我改了改,重做了实验。

# 隐藏层的形状 == (批大小,隐藏层大小) # 这样做是为了执行加法以计算分数 # values就是Encoder最后一步输出,所以维度是(批大小,序列长度,隐藏层units) # score的形状 == (批大小,最大长度,1) # 我们在最后一个轴上得到 1, 因为我们把分数应用于 self.V # 在应用 self.V 之前,张量的形状是(批大小,最大长度,单位) # 上下文向量 (context_vector) 求和之后的形状 == (批大小,隐藏层大小) # 和Encoder类差不多,就不过多注释了 # 刚开始看到这里挺费解,这样直接用一个完整的GRU层,而不是GRUCell,解码时岂不是只有第一个起始符考虑了attention # 然后往下翻代码,发现是输出的每一步都会调用一次这个解码器 # 编码器输出 (enc_output) 的形状 == (批大小,最大长度,隐藏层大小) # x 在通过嵌入层后的形状 == (批大小,1,嵌入维度) # 将合并后的向量传送到 GRU # 输出的形状 == (批大小 * 1,隐藏层大小)

定义优化器和损失函数:

# 损失函数带sparse,表示目标变量是未经one hot编码的分类变量 # 能一行一行看到这里的,这两点应该都懂 # 这俩函数如其名,equal判断是否相等,返回T或者F,logical_not取反 # 变量类型转换,将mask转为loss_的数据类型 # 一顿操作下来,如果real是0,mask就先是False,转张量后就变成0,如果real不是0,最后就变成1 # mask机制,我个人理解就是,很多句子达不到指定长度,原句后面都是0的,就不计入loss,so easy

检查点(基于对象保存):

1、将 输入 传送至 编码器,编码器返回 编码器输出 和 编码器隐藏层状态。
2、将编码器输出、编码器隐藏层状态和解码器输入(即 开始标记)传送至解码器。
3、解码器返回 预测 和 解码器隐藏层状态。
4、解码器隐藏层状态被传送回模型,预测被用于计算损失。
5、使用 教师强制 (teacher forcing) 决定解码器的下一个输入。
6、教师强制 是将 目标词 作为 下一个输入 传送至解码器的技术。
7、最后一步是计算梯度,并将其应用于优化器和反向传播。

# 这里用了个装饰器,tf就默认使用图计算,但是缺点就是,调试的时候不能即时查看变量值了, # 比如对于一个tensor,用numpy()方法就会报错,如果想在函数计算过程中加个print来看看变量到底什么样的话,需要先把这个@tf.function注释掉 # 先把初始输入和初始隐藏层状态传入解码器,然后得到解码器输出,顺便更新隐藏层状态,没啥好说的 # 经编码器计算后,隐藏层状态进入下一步,当作解码器的初始输入隐藏层状态 # 使用教师强制,将目标词作为下一个输入 # 这个batch loss和我刚开始对字面理解的意思有点差异, # 所以这个batch loss应该理解为一个batch数据上,平均每个时间步的loss # 另外查loss的代码可知,已经对batch取均值了 # 隐藏层状态初始化,用于第一次输入到编码器的,置零 # 用enumerate打包之后再迭代,batch就是序号,这里也用来记录训练到第几个batch了 # 其实不明白这里为什么不每次取batch size条数据,这样才符合逻辑 # 每 2 个周期(epoch),保存(检查点)一次模型

1、评估函数类似于训练循环,不同之处在于在这里我们不使用 教师强制。每个时间步的解码器输入是其先前的预测、隐藏层状态和编码器输出。
2、当模型预测 结束标记 时停止预测。
3、存储 每个时间步的注意力权重。
4、请注意:对于一个输入,编码器输出仅计算一次。

# 一行就是输入序列的attention向量,维度就是输入序列的最大长度 # 预处理,前面写好了的函数,忘了的话往上翻 # 转张量参与模型计算,但是我记忆中现在不需要这一步也能运行,实测也是如此 # 用来翻译的,所以第一个维度就是1了 # tf计算时,最少二维,也就是传个向量进来,需要再包个列表符,有一定的tf经验的应该都懂 # 存储注意力权重以便后面制图 # 因为输入只有一条,所以reshape的时候,第一个维度不加限制,设为-1就行,最后会变成16维的向量 # 一轮循环得到当前解码器时间步的词关于输入的attention向量,所以最后会得到个矩阵 # 用argmax获取最大概率词的下标(整个文档里一共4871个词) # 通过下标获取对应词 # 如果预测结果为终止符,就停止循环,并返回结果 # 预测结果传入下一个时间步

画图函数,没啥好说的:

翻译,并画注意力图,也没啥好说的:

恢复检查点目录 (checkpoint_dir) 中最新的检查点:

我要回帖

更多关于 无效的付款方式 的文章

 

随机推荐