import tensorflow as tf

		self.dropout_output = args.dropout_output
		self.dropout_input = args.dropout_input
		self.clip_norm = args.clip_norm

		self.embedding_init = embedding_init
		self.x = tf.placeholder(tf.int32, [None, None], 'input')
		self.y = tf.placeholder(tf.int32, [None, self.num_classes], 'labels')
		self.seq_len = tf.placeholder(tf.int64, [None], 'input_length')


	def inference(self, forward_only=None):

		embed_inputs = tf.nn.embedding_lookup(self.embedding_init, self.x) ## (batch_size, seq_len, 100)

		with tf.variable_scope('hidden', reuse=forward_only):
			with tf.variable_scope('lstm_cell'):
				lstm_cell = tf.nn.rnn_cell.LSTMCell(num_units=self.num_hidden, use_peepholes=False, 
													# forget_bias=0.0, 
													activation=tf.nn.relu, 
													# initializer=tf.truncated_normal_initializer(stddev=0.1),
													# initializer=tf.random_uniform_initializer(-0.003, 0.003),
													initializer=tf.contrib.layers.xavier_initializer(),
													state_is_tuple=True)
				if not forward_only:
