import tensorflow as tf

	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

	
	def training(self, cost):
		optimizer = tf.train.AdamOptimizer(learning_rate=self.learning_rate)
		# train_op = optimizer.minimize(cost)
		
		trainables = tf.trainable_variables()
