小编VM_*_*_AI的帖子

TensorFlow:解放

是否有TensorFlow原生函数可以解卷积网络解开?

我已经在普通的python中写了这个,但是当它想要将它翻译成TensorFlow时变得越来越复杂,因为它的对象目前甚至不支持项目分配,我认为这对TF来说非常不方便.

conv-neural-network tensorflow deconvolution

22
推荐指数
3
解决办法
1万
查看次数

RNN初始状态是否为后续的小批量重置?

有人可以澄清TF中RNN的初始状态是否为后续的小批量重置,或者是否使用了Ilya Sutskever等人ICLR 2015中提到的上一个小批量的最后状态?

time-series tensorflow recurrent-neural-network

17
推荐指数
2
解决办法
1万
查看次数

拆包和解卷积如何在DeConvNet中运行

我一直试图了解DeConvNets中的解拼和解卷积是如何工作的.

Unpooling

在解放阶段,激活会恢复到最大激活选择的位置,这是有道理的,但剩下的激活情况呢?那些剩余的激活也需要恢复或以某种方式进行插值,或者只是在非池化地图中填充为零.

解卷积

在卷积部分(即,卷积层,Relu,池化)之后,通常具有多个特征映射输出,其将被视为连续层的输入通道(Deconv ..).为了实现与原始输入具有相同分辨率的激活图,这些要素图如何组合在一起?

machine-learning image-processing neural-network deep-learning conv-neural-network

10
推荐指数
2
解决办法
2万
查看次数

TensorFlow嵌入查找

我正在尝试学习如何使用TensorFlow构建用于语音识别的RNN.首先,我想尝试一下TensorFlow页面TF-RNN上的一些示例模型

根据建议,我花了一些时间来理解如何通过word2vec模型代码的基本版本将单词ID嵌入到密集表示(Vector Representation)中.我对tf.nn.embedding_lookup实际做了什么有了解,直到我实际遇到与TF-RNN中的 二维数组一起使用的相同函数ptb_word_lm.py,当它再也没有意义时.

tf.nn.embedding_lookup做了什么:

给定一个2-d数组params和一个1-d数组ids,函数tf.nn.embedding_lookup从params中获取行,对应于给定的索引ids,其中包含返回的输出维度.

我感到困惑的是:

当尝试使用相同的params和2-d数组时ids,tf.nn.embedding_lookup返回3-d数组,而不是2-d,我不明白为什么.

我查阅了嵌入查找的手册,但我仍然发现很难理解分区是如何工作的,以及返回的结果.我最近尝试了一些简单的例子,tf.nn.embedding_lookup它似乎每次都返回不同的值.这种行为是由于分区涉及的随机性吗?

请帮助我理解它是如何tf.nn.embedding_lookup工作的,以及为什么在两者中使用word2vec_basic.py,ptb_word_lm.py即使用它们的目的是什么?

word2vec language-model tensorflow recurrent-neural-network

10
推荐指数
1
解决办法
1万
查看次数

预训练如何改善神经网络的分类?

到目前为止我读过的许多论文都提到了"预训练网络可以提高反向传播错误的计算效率",并且可以使用RBM或自动编码器来实现.

  1. 如果我已经正确理解,AutoEncoders通过学习身份函数来工作,如果它的隐藏单位小于输入数据的大小,那么它也会进行压缩,但这与提高传播错误的计算效率有什么关系呢?向后发出信号?是因为预训练的隐藏单位的权重与其初始值没有太大差异吗?

  2. 假设正在阅读本文的数据科学家已经知道自己已经知道AutoEncoders将输入作为目标值,因为它们是学习身份函数,这被认为是无监督学习,但是这种方法可以应用于卷积神经网络,其中第一个隐藏层是功能图?通过将学习的内核与图像中的感知字段进行卷积来创建每个特征映射.这个学习的内核,如何通过预训练(无监督的方式)获得?

machine-learning neural-network autoencoder deep-learning conv-neural-network

7
推荐指数
1
解决办法
1329
查看次数

使用TensorFlow进行端到端语音识别的RNN

我还没有成功使用TensorFlow训练RNN进行语音到文本的问题。我已决定使用纯FFT(即频谱图)作为训练数据来重现Alex Graves和Navdeep Jaitley,2014年所述方法的结果,并编码每个具有300个LSTM单位的3层双向RNN。我想描述从预处理音频信号到解码logit所遵循的步骤。

预处理:

  1. 使用了来自matplotlib.mlab的频谱图函数将时域中的每个音频信号分割为20ms的帧,NFFT =(fs / 1000 * 20个样本)长度,并执行窗口加FFT并重叠7ms。

  2. 我最初尝试计算功率谱ps |fft|^2和dB by 10 * log10(ps),但是TensorFlow CTC损失函数会产生nan值,并且进一步,优化器显然将所有参数更新为nan,因此我不再继续使用它。

  3. 值得一提的是,频谱图未规范化,因为它仅出于某种原因使TensorFlow产生nan值。请有人说明为什么会这样。我有一种感觉,梯度正在消失。关于要使用的初始化范围的任何建议?

  4. 由于不同的音频文件的长度各不相同,因此我用max_time填充了每个批次的帧,因为这需要形成mini-batchshape [max_time,batch,NFFT]

  5. 由于所有目标转录均以大写字母表示,因此我仅将AZ,空格和一些标点符号包括在类别列表中(总共32个),这些类别用于将字符串目标转录转换为SparseTensor。

RNN配置:

  1. 前向和后向单元,每个LSTM单元使用窥孔架构在每层中具有300个单元,并且忘记将偏差初始设置为0才能查看性能。

  2. 将project_size设置为的双向动态RNN hidden_size 500

  3. 序列长度张量为每个数据分批分配了最大时间长度的值。

  4. 由于tf.nn.bidirectional_dynamic_rnn不包括输出层sigmoid or softmax,因此我将在其外部执行线性回归,其权重将为shape = [hidden_size,n_chars]

  5. 我使用了损失函数tf.nn.ctc_loss,该函数最初返回650或700之类的巨大值,并在几百个历元后向下滑动到最大值500。

  6. 最后,使用CTC波束搜索解码器从输出softmax or sigmoid层生成的对数中找到最佳路径。

现在,我不明白我要去哪里错了,但我只是没有得到想要的转录(即权重未收敛以产生目标结果)。我要求某人说明原因。我曾尝试用100个音频片段过度拟合网络,但没有用。预测的结果远不及所需的转录。

感谢您的时间和支持。

speech-recognition speech-to-text lstm tensorflow recurrent-neural-network

5
推荐指数
1
解决办法
4357
查看次数