c = tfg.Variable(orange_price, name="c") d = tfg.Variable(orange_num, name="d") e = tfg.Variable(tax, name="e") # Create Mul operation node f = tfg.Mul(a, b, name="f") g = tfg.Mul(c, d, name="g") # Create Add operation node h = tfg.Add(f, g, name="h") # Create Mul operation node i = tfg.Mul(h, e, name="i") session = tfs.Session() # forward final_price = session.run(i, verbose=False) print("final_price: {:f}".format(float(final_price))) print() #backward d_in = 1 d_total_price, d_tax = i.backward(d_in) print("d_total_price: {:f}".format(float(d_total_price))) print("d_tax: {:f}".format(float(d_tax))) d_total_apple_price, d_total_orange_price = h.backward(d_total_price) print("d_total_apple_price: {:f}".format(float(d_total_apple_price))) print("d_total_orange_price: {:f}".format(float(d_total_orange_price)))
def __init__(self, input_dim, cnn_param_list, fc_hidden_size, output_size, input_node=None, target_node=None, conv_initializer=tfe.Initializer.Conv_Xavier_Normal, initializer=tfe.Initializer.Normal.value, init_sd=0.01, activator=tfe.Activator.ReLU.value, optimizer=tfe.Optimizer.SGD.value, learning_rate=0.01): super().__init__() self.input_dim = input_dim self.cnn_param_list = cnn_param_list self.fc_hidden_size = fc_hidden_size self.output_size = output_size self.input_node = input_node self.target_node = target_node self.conv_initializer = conv_initializer self.initializer = initializer self.activator = activator self.optimizer = optimizer(learning_rate=learning_rate) self.params = {} self.optimal_epoch_and_params = None self.output = None self.error = None self.max_epoch = None self.session = tfs.Session() self.mode_id = ''.join( random.choices(string.ascii_uppercase + string.digits, k=8)) print("Convolutional Neural Network Model - ID:", self.mode_id) self.params_size_list = None self.layers = OrderedDict() self.train_error_list = [] self.validation_error_list = [] self.test_accuracy_list = [] self.min_validation_error_epoch = sys.maxsize self.min_train_error = sys.float_info.max self.min_validation_error = sys.float_info.max self.min_fold_idx = sys.maxsize self.test_accuracy_at_min_validation_error_epoch = 0.0 self.min_validation_error_per_fold = [] self.shape_before_fc = None self.num_neurons_flatten_for_fc = None self.initialize_param(sd=init_sd) self.layering()