【tensorflow】学习笔记

时间:2022-05-11 07:35:25

1、tensorflow中dynamic_rnn和rnn有什么区别?

  •    在tensorflow中没有找到rnn这个方法难道是废弃掉了?

rnn是静态图,比如有10个时间序列,那么它将全部展开,并且存储这十个图,

dynamic_rnn是动态的,不会全部存储这些图

dynamic_rnn对于不同的时间步的batch可以是长度不同的数据,它会根据不同的迭代进行对齐

  • dynamic_rnn与static_rnn区别

1、输入输出的结构不一样

dynamic_rnn的输入[batch, n_steps, input],  输出对应 [batch, n_steps, output]

static_rnn的输入[n_steps, batch, input], 输出对应[n_steps, batch, input]

2、sparse_softmax_cross_entropy_with_logits vs softmax_cross_entropy_with_logits

二者在tensorflow中的效果都是一样的,先对输出结果进行softmax,然后求交叉熵,不同的一点就是 输入labels的形式,

在sparse_softmax_cross_entropy_with_logits中,labels的维度是[batch_size], 就是batch_size个整数组成的一位向量,每一个整数代表样本的类别,

而在softmax_cross_entropy_with_logits中,labels的维度是[batch_size, num_classes], 也就是每一个样本都以one-hot形式编码

    共同点:

输入都需要unscaled logits,因为tensorflow内部机制会将其进行归一化操作以提高效率

参考:https://blog.csdn.net/yc461515457/article/details/77861695

3、tensorflow.contrib.learn.preprocessing.VocabularyProcessor

一个建立字典,并获取索引有用的函数