python出现invalid argument_tensorflow.python.framework.错误.InvalidArgumentE

我用tensorflow实现了一个语言模型。训练数据就是这样的feed_dict中的大量句子:feed_dict = {

model.inputs: x,

model.seqlen:seqlen

}

x看起来像:

^{pr2}$

我的型号代码:import numpy as np

import tensorflow as tf

from tensorflow.python.ops import array_ops

class Model(object):

def __init__(

self,

batch_size,

vocab_size,

hidden_size,

learning_rate):

self.inputs = tf.placeholder(tf.int32, [batch_size, None])

self.seqlen = tf.placeholder(tf.float32)

with tf.device('/cpu:0'), tf.name_scope("embedding"):

# embed = tf.get_variable(name="Embedding", shape=[vocab_size, hidden_size])

embed = tf.Variable(

tf.random_uniform([vocab_size, hidden_size], -1.0, 1.0))

self.embedded_chars = tf.nn.embedding_lookup(embed, self.inputs)

self.rev_input = tf.reverse(self.inputs, [False,True])

self.embedded_chars_rev = tf.nn.embedding_lookup(embed, self.rev_input)

with tf.variable_scope('forward'):

forward_lstm_cell = tf.nn.rnn_cell.BasicLSTMCell(hidden_size)

forward_outputs, _ = tf.nn.dynamic_rnn(forward_lstm_cell, self.embedded_chars,

sequence_length=self.seqlen,

dtype=tf.float32)

with tf.variable_scope('backward'):

backward_lstm_cell = tf.nn.rnn_cell.BasicLSTMCell(hidden_size)

backward_outputs, _ = tf.nn.dynamic_rnn(backward_lstm_cell,

self.embedded_chars_rev,

sequence_length=self.seqlen,

dtype=tf.float32)

lstm_outputs = tf.add(forward_outputs, backward_outputs, name="lstm_outputs")

self.outputs = tf.nn.relu(lstm_outputs)

# W = tf.Variable(tf.truncated_normal([hidden_size,vocab_size, 1], -0.1, 0.1))

W = tf.get_variable('Weights', shape=[hidden_size, 1])

b = tf.get_variable('Bias', shape=[1])

outputs = self.outputs[:,1,:]

y_pred = tf.squeeze(tf.matmul(outputs, W)) + b

inputs_0 = tf.cast(self.inputs[:,0], tf.float32)

self.loss = tf.nn.sigmoid_cross_entropy_with_logits(y_pred, inputs_0)

self.train_op = tf.train.AdamOptimizer(0.0002).minimize(self.loss)

当我输入数据并运行时,出现错误:Traceback (most recent call last):

File "h1_mscc/train_model.py", line 156, in

tf.app.run()

File "/usr/lib/python2.7/site-packages/tensorflow/python/platform/app.py", line 30, in run

sys.exit(main(sys.argv))

File "h1_mscc/train_model.py", line 153, in main

train()

File "h1_mscc/train_model.py", line 143, in train

train_step(batch,seqlen)

File "h1_mscc/train_model.py", line 134, in train_step

feed_dict)

File "/usr/lib/python2.7/site-packages/tensorflow/python/client/session.py", line 372, in run

run_metadata_ptr)

File "/usr/lib/python2.7/site-packages/tensorflow/python/client/session.py", line 636, in _run

feed_dict_string, options, run_metadata)

File "/usr/lib/python2.7/site-packages/tensorflow/python/client/session.py", line 708, in _do_run

target_list, options, run_metadata)

File "/usr/lib/python2.7/site-packages/tensorflow/python/client/session.py", line 728, in _do_call

raise type(e)(node_def, op, message)

tensorflow.python.framework.errors.InvalidArgumentError: indices[0,0] = 205505 is not in [0, 50000)

[[Node: embedding/embedding_lookup_1 = Gather[Tindices=DT_INT32, Tparams=DT_FLOAT, _class=["loc:@embedding/Variable"], validate_indices=true, _device="/job:localhost/replica:0/task:0/cpu:0"](embedding/Variable/read, embedding/Reverse)]]

Caused by op u'embedding/embedding_lookup_1', defined at:

File "h1_mscc/train_model.py", line 156, in

tf.app.run()

File "/usr/lib/python2.7/site-packages/tensorflow/python/platform/app.py", line 30, in run

sys.exit(main(sys.argv))

File "h1_mscc/train_model.py", line 153, in main

train()

File "h1_mscc/train_model.py", line 81, in train

model = create_model(sess)

File "h1_mscc/train_model.py", line 59, in create_model

learning_rate=FLAGS.learning_rate)

File "/home/liac/code/Project3-preprocess-master/h1_mscc/model1.py", line 24, in __init__

self.embedded_chars_rev = tf.nn.embedding_lookup(embed, self.rev_input)

File "/usr/lib/python2.7/site-packages/tensorflow/python/ops/embedding_ops.py", line 86, in embedding_lookup

validate_indices=validate_indices)

File "/usr/lib/python2.7/site-packages/tensorflow/python/ops/gen_array_ops.py", line 780, in gather

validate_indices=validate_indices, name=name)

File "/usr/lib/python2.7/site-packages/tensorflow/python/ops/op_def_library.py", line 704, in apply_op

op_def=op_def)

File "/usr/lib/python2.7/site-packages/tensorflow/python/framework/ops.py", line 2260, in create_op

original_op=self._default_original_op, op_def=op_def)

File "/usr/lib/python2.7/site-packages/tensorflow/python/framework/ops.py", line 1230, in __init__

self._traceback = _extract_stack()

这让我很困惑,希望能得到一些回应!

输入

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值