Tensorflow 动态\u rnn()和数组\u ops.reverse\u sequence()问题

Tensorflow 动态\u rnn()和数组\u ops.reverse\u sequence()问题,tensorflow,Tensorflow,我正在尝试使用数组操作反转输入。反转序列()在将其发送到dynamic\u rnn()之前,可以毫无问题地构建推理图,但在构建训练图时,我遇到以下错误: Traceback (most recent call last): File "bin/trainer.py", line 158, in <module> kmer_len=args.kmer_len) File "/home/ubuntu/GIT/IvyMike/ivymike/base_model.py",

我正在尝试使用
数组操作反转输入。反转序列()
在将其发送到
dynamic\u rnn()
之前,可以毫无问题地构建推理图,但在构建训练图时,我遇到以下错误:

Traceback (most recent call last):
  File "bin/trainer.py", line 158, in <module>
    kmer_len=args.kmer_len)
  File "/home/ubuntu/GIT/IvyMike/ivymike/base_model.py", line 193, in run_training
    train_op = model.training(loss, learning_rate)
  File "/home/ubuntu/GIT/IvyMike/ivymike/base_model.py", line 100, in training
    train_op = optimizer.minimize(loss, global_step=global_step)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/optimizer.py", line 190, in minimize
    colocate_gradients_with_ops=colocate_gradients_with_ops)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/optimizer.py", line 241, in compute_gradients
    colocate_gradients_with_ops=colocate_gradients_with_ops)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/gradients.py", line 481, in gradients
    in_grads = _AsList(grad_fn(op, *out_grads))
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/array_grad.py", line 307, in _ReverseSequenceGrad
    seq_lengths=seq_lengths),
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/gen_array_ops.py", line 1143, in reverse_sequence
    batch_dim=batch_dim, name=name)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/op_def_library.py", line 655, in apply_op
    op_def=op_def)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 2119, in create_op
    set_shapes_for_outputs(ret)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 1586, in set_shapes_for_outputs
    shapes = shape_func(op)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/array_ops.py", line 1257, in _ReverseSequenceShape
    (batch_dim, input_shape.ndims))
TypeError: %d format: a number is required, not NoneType
回溯(最近一次呼叫最后一次):
文件“bin/trainer.py”,第158行,在
kmer_len=args.kmer_len)
文件“/home/ubuntu/GIT/IvyMike/IvyMike/base_model.py”,第193行,跑步训练
培训op=模型培训(损失、学习率)
文件“/home/ubuntu/GIT/IvyMike/IvyMike/base_model.py”,第100行,培训中
训练操作=优化器。最小化(损失,全局步骤=全局步骤)
文件“/usr/local/lib/python2.7/dist packages/tensorflow/python/training/optimizer.py”,第190行
colocate_gradients_with_ops=colocate_gradients_with_ops)
文件“/usr/local/lib/python2.7/dist packages/tensorflow/python/training/optimizer.py”,第241行,计算梯度
colocate_gradients_with_ops=colocate_gradients_with_ops)
文件“/usr/local/lib/python2.7/dist packages/tensorflow/python/ops/gradients.py”,第481行,渐变中
入级=入级列表(入级fn(op,*出级))
文件“/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/array_-grad.py”,第307行,在倒序排列中
顺序长度=顺序长度),
文件“/usr/local/lib/python2.7/dist packages/tensorflow/python/ops/gen_array_ops.py”,第1143行,顺序相反
批次尺寸=批次尺寸,名称=名称)
文件“/usr/local/lib/python2.7/dist packages/tensorflow/python/ops/op_def_library.py”,第655行,在apply_op
op_def=op_def)
文件“/usr/local/lib/python2.7/dist packages/tensorflow/python/framework/ops.py”,第2119行,在create_op中
为输出设置形状(ret)
文件“/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py”,第1586行,在集合形状中,用于输出
形状=形状函数(op)
文件“/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/array_-ops.py”,第1257行,在倒序图形中
(批次尺寸,输入形状。ndims))
类型错误:%d格式:需要数字,而不是非非类型

知道哪里出了问题吗?

这已经在TensorFlow的mater上解决了

欢迎来到StackOverflow!为了帮助调试代码,请编辑您的问题并发布生成错误的源代码。这是
tf.reverse_sequence()
实现中的一个错误!我已提交了一个文件,正在进行修复。由于某些原因,我不允许在此处发布代码,但当我尝试使用“dynamic_rnn()”堆叠多层BLSTM时,会出现错误(请参阅此相关请求:)。对于向后传递,我首先使用“array_ops.reverse_sequence()”反转输入,然后使用相同的函数反转输出。我还在BLSTM之间使用前馈层。然而,有了一个BLSTM层,一切都很好。谢谢你的帮助!