コード例 #1
0
def train(x, target, learning_rate, iterate):

    inputNodes = x.shape[-1]
    outputNodes = target.shape[-1]

    weight = np.full((inputNodes, outputNodes), 1.0)
    bias = np.zeros((outputNodes))

    for i in range(iterate):

        predict = linear.forward(x, weight, bias)

        error = (predict - target)

        mse = np.average(error**2)

        print_summary(i, mse)

        error, weight_delta, bias_delta = linear.backward(
            x, error, weight, bias)

        weight -= (learning_rate * weight_delta)
        bias -= (learning_rate * bias_delta)

    return weight, bias
コード例 #2
0
def train(x, target, learning_rate, iterate):

    inputNodes = x.shape[-1]
    outputNodes = target.shape[-1]

    h1_units = 25

    h1_weight = np.random.normal(size=(inputNodes, h1_units))
    h1_bias = np.zeros((h1_units))

    h2_weight = np.random.normal(size=(h1_units, outputNodes))
    h2_bias = np.zeros((outputNodes))

    for i in range(iterate):

        y1 = linear.forward(x, h1_weight, h1_bias)
        s1 = sigmoid.forward(y1)
        y2 = linear.forward(s1, h2_weight, h2_bias)
        predict = sigmoid.forward(y2)

        error = (predict - target)

        mse = np.average(error**2)

        print_summary(i, mse)

        error = sigmoid.backward(y2, error)

        error, h2_weight_delta, h2_bias_delta = linear.backward(
            s1, error, h2_weight, h2_bias)

        h2_weight -= (learning_rate * h2_weight_delta)
        h2_bias -= (learning_rate * h2_bias_delta)

        error = sigmoid.backward(y1, error)

        error, h1_weight_delta, h1_bias_delta = linear.backward(
            x, error, h1_weight, h1_bias)

        h1_weight -= (learning_rate * h1_weight_delta)
        h1_bias -= (learning_rate * h1_bias_delta)

    return h1_weight, h1_bias, h2_weight, h2_bias
コード例 #3
0
def train(x, target, learning_rate, iterate):

    inputNodes = x.shape[-1]
    outputNodes = target.shape[-1]

    weight = np.zeros((inputNodes, outputNodes))
    bias = np.zeros((outputNodes))

    for i in range(iterate):

        y = linear.forward(x, weight, bias)
        p = sigmoid.forward(y)

        p_error = (p - target)

        loss = np.average(p_error**2)
        print_numpy('w', weight)
        print_numpy('b', bias)
        print_numpy('y', y)
        print_numpy('p', p)
        print_numpy('L', loss)

        y_error = sigmoid.backward(y, p_error)
        x_error, w_error, b_error = linear.backward(x, y_error, weight, bias)

        weight -= (learning_rate * w_error)
        bias -= (learning_rate * b_error)

        print_numpy('~p', p_error)
        print_numpy('~y', y_error)
        print_numpy('~x', x_error)
        print_numpy('~w', w_error)
        print_numpy('~b', b_error)

        print('----- epoch : ', (i + 1), '------')

    return weight, bias
コード例 #4
0
    weight = np.full((inputNodes, outputNodes), 1.0)
    bias = np.zeros((outputNodes))

    for i in range(iterate):

        predict = linear.forward(x, weight, bias)

        error = (predict - target)

        mse = np.average(error**2)

        print_summary(i, mse)

        error, weight_delta, bias_delta = linear.backward(
            x, error, weight, bias)

        weight -= (learning_rate * weight_delta)
        bias -= (learning_rate * bias_delta)

    return weight, bias


train_x = np.array([[2.0]])
target = np.array([[11.0]])

weight, bias = train(train_x, target, learning_rate=0.1, iterate=5)

predict = linear.forward(train_x, weight, bias)

print('predict : ', predict)
コード例 #5
0
        h2_weight -= (learning_rate * h2_weight_delta)
        h2_bias -= (learning_rate * h2_bias_delta)

        error = sigmoid.backward(y1, error)

        error, h1_weight_delta, h1_bias_delta = linear.backward(
            x, error, h1_weight, h1_bias)

        h1_weight -= (learning_rate * h1_weight_delta)
        h1_bias -= (learning_rate * h1_bias_delta)

    return h1_weight, h1_bias, h2_weight, h2_bias


train_x = np.array([[0, 0], [1, 1]])
target = np.array([[0], [1]])

h1_weight, h1_bias, h2_weight, h2_bias = train(train_x,
                                               target,
                                               learning_rate=0.01,
                                               iterate=5000)

y1 = linear.forward(train_x, h1_weight, h1_bias)
s1 = sigmoid.forward(y1)

y2 = linear.forward(s1, h2_weight, h2_bias)
predict = sigmoid.forward(y2)

print('predict : ', predict)