Пример #1
0
def L_layer_model(X,
                  Y,
                  layers_dims,
                  learning_rate=0.5,
                  num_iterations=10000,
                  print_cost=False):  #lr was 0.009

    np.random.seed(1)
    costs = []

    parameters = functions.initialize_parameters_deep(layers_dims)

    for i in range(0, num_iterations):

        AL, caches = functions.L_model_forward(X, parameters)

        cost = functions.compute_cost(AL, Y)

        grads = functions.L_model_backward(AL, Y, caches)

        parameters = functions.update_parameters(parameters, grads,
                                                 learning_rate)

        if print_cost and i % 100 == 0:
            print("Cost after iteration %i: %f" % (i, cost))
        if print_cost and i % 100 == 0:
            costs.append(cost)

    #plt.ylabel('cost')
    #plt.xlabel('iterations (per tens)')
    #plt.title("Learning rate =" + str(learning_rate))
    #plt.show()

    return parameters
Пример #2
0
def L_layer_model(
        X, y, layers_dims, learning_rate=0.01, num_iterations=3000,
        print_cost=True, hidden_layers_activation_fn="relu"):
    random.seed(version =2)
    np.random.seed(random.randint(0,1000))
    
    parameters = fn.initialize_parameters(layers_dims)
    for i in range(num_iterations):
    
        AL, caches = fn.L_model_forward(
            X, parameters, hidden_layers_activation_fn)

    
        cost = fn.compute_cost(AL, y)

    
        grads = fn.L_model_backward(AL, y, caches, hidden_layers_activation_fn)

    
        parameters = fn.update_parameters(parameters, grads, learning_rate)

    
        if (i + 1) % 100 == 0 and print_cost:
            print(f"The cost after {i + 1} iterations is: {cost:.4f}")
    return parameters
Пример #3
0
def accuracy(X, parameters, y, activation_fn="relu"):
    probs, caches = fn.L_model_forward(X, parameters, activation_fn)
    probs = probs.T   
    for i in range(np.shape(probs)[0]):
        flag = True
        li = np.asarray(probs[i])
        Max = max(li)
        for j in range(np.shape(probs)[1]):
            if probs[i][j]==Max and flag:
                probs[i][j] = 1
                flag = False
            else:
                probs[i][j] = 0
                
    y = y.T
    count = 0
    acc = {}
    
    for i in range(10):
        acc[i] = 0

    for i in range(np.shape(probs)[0]):
        flag = True
        for j in range(np.shape(probs)[1]):
            if probs[i][j] != y[i][j]:
                flag = False
                break
            elif probs[i][j] == 1:
                acc[j] +=1
                break
        if flag:
            count +=1
    for i in range(10):
        acc[i] *= 100/(np.shape(probs)[0]/np.shape(probs)[1])
    accuracy = count * 100/(np.shape(probs)[0])
    print(acc)
    print()
    
    return f"The accuracy rate is: {accuracy:.2f}%."
Пример #4
0
    print()

#Подсчёт ответа на конкретном файле
print("Доступные файлы:")
showFiles()
print()
path = input("Введите название файла в папке working, включая расширение, введите \"exit\" для завершения : ")
print()
dirName = os.path.join(os.path.realpath(r"..\..\..\ "),"samples","working")
while(str(path)!="exit"):
    path = os.path.join(dirName,path)
    try:
        X_test = generateTrain(1,path)

        if mode == "0":
            probs, caches = fn.L_model_forward(X_test, fn.outputWB(layers_dims,"best"), "relu")
        else:
            probs, caches = fn.L_model_forward(X_test, fn.outputWB(layers_dims), "relu")
        print("answer:")
        ans = np.asarray(probs.T[0])
        Max = max(ans)
        for i in range(len(ans)):
            if np.all(ans[i] == Max):
                print(i)
                break;
    except IOError:
        print("Can't open image")
    print()
    print("Доступные файлы:")
    showFiles()
    print()