def predict_y(x, params):
    W1 = params["W1"]
    b1 = params["b1"]
    W2 = params["W2"]
    b2 = params["b2"]
    W3 = params["W3"]
    b3 = params["b3"]
    W4 = params["W4"]
    b4 = params["b4"]
    #测试用例样本数
    test_m = x.shape[1]
    prediction_Y = np.zeros((1, test_m))
    #计算
    A1, Z1 = model.l_layer_forward_model(x, W1, b1, acitvation="relu")  #第1层
    A2, Z2 = model.l_layer_forward_model(A1, W2, b2, acitvation="relu")  #第2层
    A3, Z3 = model.l_layer_forward_model(A2, W3, b3, acitvation="relu")  #第3层
    A4, Z4 = model.l_layer_forward_model(A3, W4, b4,
                                         acitvation="sigmoid")  #第4层
    test_Y = A4
    # print(test_Y.shape)
    for i in range(test_Y.shape[1]):
        if test_Y[0][i] > 0.5:
            prediction_Y[0][i] = 1
        else:
            prediction_Y[0][i] = 0

    return prediction_Y
def predict_y_with_load_params(x):
    cur_filepath = os.path.basename(os.path.realpath(__file__))
    cur_file, ext = os.path.splitext(cur_filepath)
    filename = cur_file + ".h5"
    f = h5py.File(filename, 'r')
    params = {}
    for k in f.keys():
        params[k] = np.array(f[k][:])
    W1 = params["W1"]
    b1 = params["b1"]
    W2 = params["W2"]
    b2 = params["b2"]
    W3 = params["W3"]
    b3 = params["b3"]
    W4 = params["W4"]
    b4 = params["b4"]
    #测试用例样本数
    test_m = x.shape[1]
    prediction_Y = np.zeros((1, test_m))
    #计算
    A1, Z1 = model.l_layer_forward_model(x, W1, b1, acitvation="relu")  #第1层
    A2, Z2 = model.l_layer_forward_model(A1, W2, b2, acitvation="relu")  #第2层
    A3, Z3 = model.l_layer_forward_model(A2, W3, b3, acitvation="relu")  #第3层
    A4, Z4 = model.l_layer_forward_model(A3, W4, b4,
                                         acitvation="sigmoid")  #第4层
    test_Y = A4
    # print(test_Y.shape)
    for i in range(test_Y.shape[1]):
        if test_Y[0][i] > 0.5:
            prediction_Y[0][i] = 1
        else:
            prediction_Y[0][i] = 0

    return prediction_Y
Ejemplo n.º 3
0
def predict_y(x, params):
    W1 = params["W1"]
    b1 = params["b1"]
    W2 = params["W2"]
    b2 = params["b2"]

    #测试用例样本数
    test_m = x.shape[1]
    prediction_Y = np.zeros((1, test_m))
    #计算
    A1, Z1 = model.l_layer_forward_model(x, W1, b1, acitvation="relu")  #第1层
    A2, Z2 = model.l_layer_forward_model(A1, W2, b2,
                                         acitvation="sigmoid")  #第2层
    test_Y = A2
    # print(test_Y.shape)
    for i in range(test_Y.shape[1]):
        if test_Y[0][i] > 0.5:
            prediction_Y[0][i] = 1
        else:
            prediction_Y[0][i] = 0

    return prediction_Y
                                     4, [20, 7, 5, 1],
                                     init_method="He")
    W1 = params["W1"]
    b1 = params["b1"]
    W2 = params["W2"]
    b2 = params["b2"]
    W3 = params["W3"]
    b3 = params["b3"]
    W4 = params["W4"]
    b4 = params["b4"]
    learning_rate = 0.0075
    echo_num = 3000
    for echo in range(echo_num):
        #正向传播
        A1, Z1 = model.l_layer_forward_model(train_x,
                                             W1,
                                             b1,
                                             acitvation="relu")  #第1层
        A2, Z2 = model.l_layer_forward_model(A1, W2, b2,
                                             acitvation="relu")  #第2层
        A3, Z3 = model.l_layer_forward_model(A2, W3, b3,
                                             acitvation="relu")  #第3层
        A4, Z4 = model.l_layer_forward_model(A3, W4, b4,
                                             acitvation="sigmoid")  #第4层

        #计算代价
        J, dJ = model.cost_model(A4, train_y)
        #反向传播
        dA4_prew, dW4, db4 = model.l_layer_backward_model(
            A3, W4, Z4, dJ, acitvation="sigmoid")  #第4层
        dA3_prew, dW3, db3 = model.l_layer_backward_model(
            A2, W3, Z3, dA4_prew, acitvation="relu")  #第3层
Ejemplo n.º 5
0
    # print(train_X.shape)
    test_x = test_x / 255
    #参数初始化
    params = model.params_init_model(train_X.shape[0],
                                     4, [20, 7, 5, 1],
                                     init_method="He",
                                     seed=0)
    v, s = model.init_adam(params)
    learning_rate = 0.0075
    # lambd=0.7
    echo_num = 1000
    grad = {}
    for echo in range(echo_num):
        #正向传播
        A1, Z1 = model.l_layer_forward_model(train_X,
                                             params["W1"],
                                             params["b1"],
                                             acitvation="relu")  #第1层
        A2, Z2 = model.l_layer_forward_model(A1,
                                             params["W2"],
                                             params["b2"],
                                             acitvation="relu")  #第2层
        A3, Z3 = model.l_layer_forward_model(A2,
                                             params["W3"],
                                             params["b3"],
                                             acitvation="relu")  #第3层
        A4, Z4 = model.l_layer_forward_model(A3,
                                             params["W4"],
                                             params["b4"],
                                             acitvation="sigmoid")  #第4层

        #计算代价
Ejemplo n.º 6
0
    train_x = train_x / 255
    test_x = test_x / 255
    #参数初始化
    params = model.params_init_model(train_x.shape[0],
                                     2, [5, 1],
                                     init_method="He")
    W1 = params["W1"]
    b1 = params["b1"]
    W2 = params["W2"]
    b2 = params["b2"]
    learning_rate = 0.01
    echo_num = 5000
    for echo in range(echo_num):
        #正向传播
        A1, Z1 = model.l_layer_forward_model(train_x,
                                             W1,
                                             b1,
                                             acitvation="relu")  #第1层
        A2, Z2 = model.l_layer_forward_model(A1, W2, b2,
                                             acitvation="sigmoid")  #第2层

        #计算代价
        J, dJ = model.cost_model(A2, train_y)
        #反向传播
        dA2_prew, dW2, db2 = model.l_layer_backward_model(
            A1, W2, Z2, dJ, acitvation="sigmoid")  #第2层
        dA1_prew, dW1, db1 = model.l_layer_backward_model(
            train_x, W1, Z1, dA2_prew, acitvation="relu")  #第1层
        #更新参数权值
        # print("w",W.shape)
        # print("dw",dW.shape)
        W1 = W1 - learning_rate * dW1
Ejemplo n.º 7
0
if __name__ == "__main__":
    train_x, train_y, test_x, test_y, list_classes = load_dataset()
    #归一化
    train_x = train_x / 255
    test_x = test_x / 255
    #参数初始化
    params = model.params_init_model(train_x.shape[0], 1, [1])
    W1 = params["W1"]
    b1 = params["b1"]

    learning_rate = 0.001
    echo_num = 1000
    for echo in range(echo_num):
        #正向传播
        A1, Z1 = model.l_layer_forward_model(train_x,
                                             W1,
                                             b1,
                                             acitvation="sigmoid")  #第1层

        #计算代价
        J, dJ = model.cost_model(A1, train_y)
        #反向传播
        dA1_prew, dW1, db1 = model.l_layer_backward_model(
            train_x, W1, Z1, dJ, acitvation="sigmoid")  #第1层
        #更新参数权值
        # print("w",W.shape)
        # print("dw",dW.shape)
        W1 = W1 - learning_rate * dW1
        b1 = b1 - learning_rate * db1

        print("echo {0} cost:{1}".format(echo, J))