import tensorflow as tf

									# initializer=tf.random_uniform_initializer(-0.003, 0.003))
									initializer=tf.contrib.layers.xavier_initializer())
									# initializer=tf.truncated_normal_initializer(stddev=0.1))
				b = tf.get_variable('b', [self.num_classes], initializer=tf.constant_initializer(0.1))
			logits = tf.matmul(last_outputs, W) + b
		self.embed_inputs = embed_inputs
		return logits


	def loss(self, logits, forward_only=None):
		cost = tf.nn.softmax_cross_entropy_with_logits(logits=logits, labels=tf.cast(self.y, tf.float32))
		mean_cost = tf.reduce_mean(cost)
		y_pred = tf.argmax(logits, 1)
		correct_pred = tf.equal(y_pred, tf.argmax(self.y, 1))
		accuracy = tf.reduce_mean(tf.cast(correct_pred, tf.float32))

		if forward_only:
			str_summary_type = 'eval'
			loss_summ = tf.summary.scalar("{0}_loss".format(str_summary_type), mean_cost)
			acc_summ = tf.summary.scalar("{0}_accuracy".format(str_summary_type), accuracy)
			merged = tf.summary.merge([loss_summ, acc_summ])
			return mean_cost, accuracy, y_pred, merged
		else:
			return mean_cost, accuracy, y_pred
