Beispiel #1
0
class MLGUI:
    def __init__(self, master):
        self.master = master
        master.title("My ML GUI")

        self.network = MyNetwork()
        self.label = Label(master, text="This is ML GUI")
        self.label.pack()

        self.load_button = Button(master, text="Load Data", command=self.load)
        self.load_button.pack()

        self.learn_button = Button(master, text="Teach Network", command=self.teach)
        self.learn_button.pack()

        self.test_button = Button(master, text="Test Network", command=self.test)
        self.test_button.pack()

        self.close_button = Button(master, text="Close", command=master.quit)
        self.close_button.pack()

    def load(self):
        self.network.load_data()
        print("Im loading")

    def teach(self):
        print("Im teaching")
        self.network.learn()

    def test(self):
        print("Im testing")
        predictions = self.network.predict()
        show_image(predictions, self.network.test_labels, self.network.test_images)
def main(config):
    """The main function."""

    # Initialize network
    mynet = MyNetwork(config)

    # Run propper mode
    if config.run_mode == "train":

        # Load data train and validation data
        data = {}
        data["train"] = load_data(config, "train")
        data["valid"] = load_data(config, "valid")

        # Run train
        mynet.train(data)

    elif config.run_mode == "test":

        # Load validation and test data. Note that we also load validation to
        # visualize more than what we did for training. For training we choose
        # minimal reporting to not slow down.
        data = {}
        data["valid"] = load_data(config, "valid")
        data["test"] = load_data(config, "test")

        # Run train
        mynet.test(data)

    elif config.run_mode == "test_simple":

        data = {}
        data["valid"] = load_data(config, "valid")
        data["test"] = load_data(config, "test")

        mynet.test_simple(data)

    elif config.run_mode == "comp":

        # This mode is for running comparison experiments. While cleaning the
        # code, I took many parts out to make the code cleaner, which may have
        # caused some issues. We are releasing this part just to help
        # researchers, but we will not provide any support for this
        # part. Please use at your own risk.
        data = {}
        data["valid"] = load_data(config, "valid")
        data["test"] = load_data(config, "test")

        # Run train
        mynet.comp(data)
Beispiel #3
0
    def __init__(self, master):
        self.master = master
        master.title("My ML GUI")

        self.network = MyNetwork()
        self.label = Label(master, text="This is ML GUI")
        self.label.pack()

        self.load_button = Button(master, text="Load Data", command=self.load)
        self.load_button.pack()

        self.learn_button = Button(master, text="Teach Network", command=self.teach)
        self.learn_button.pack()

        self.test_button = Button(master, text="Test Network", command=self.test)
        self.test_button.pack()

        self.close_button = Button(master, text="Close", command=master.quit)
        self.close_button.pack()
    def model_generator():
        l = [1000] + layers + [3]

        network_layers = []
        for i in range(1, len(l)):
            network_layers.append(torch.nn.Linear(l[i - 1], l[i]))
            if i != len(l) - 1:
                network_layers.append(
                    get_activation_function(activation_function))

        return MyNetwork(network_layers)
        kp2 = kp2[sorted_idx, :]
        scores = y.squeeze()[sorted_idx]

        # filter out matches with negative scores
        kp1 = kp1[scores > 0]
        kp2 = kp2[scores > 0]

        filtered_matches.append([kp1, kp2, im1_name, im2_name])

    if save:
        np.savez('feature_matches_filtered', filtered_matches=filtered_matches)

    return np.array(filtered_matches)


IMG_PATHS_FILE = 'sfm_image_paths - Copy.txt'
# load unfiltered_matches:
# feature_matches = np.load('feature_matches_unfiltered.npz')['feature_matches']
# uncomment the following line if unfiltered matches do not exist
feature_matches = match_img_list(IMG_PATHS_FILE, save=True)

with open('./demo/config.pickle', 'rb') as handle:
    config = pickle.load(handle)

mynet = MyNetwork(config)
mynet.load_model()

# generate filtered matched. Note matches are not cv.KeyPoint objects but 2D points
# example shape is filtered_matches[img_combinations[kps1, kps2[2D point]], img1_name, img_2 name]
filtered_matches = filter_matches(feature_matches, mynet, save=True)
Beispiel #6
0
from config import *
from network import MyNetwork, LOG, WARNING


def parse_network(net_str):
    net_str = net_str.split('+')
    net_backbone = net_str[:-1]
    net_head = net_str[-1]
    module = []
    for b in net_backbone:
        part = name2net[b](params, in_encoder=True)
        if hasattr(part, 'output_channels'):
            params.output_channels = part.output_channels
        module.append(part)
    module.append(name2net[net_head](params))

    return module


network = 'resnet101+aspp_plus+deeplabv3_plus_decoder'

params = Params()
params.model = network
params.dataset_root = '/media/ubuntu/disk/cityscapes'
params.has_max_pool = False
params.output_stride = 16

net = MyNetwork(params, module=parse_network(network))

net.Train()
Beispiel #7
0
# coding: utf-8
import sys, os
sys.path.append(os.pardir)  # 부모 디렉터리의 파일을 가져올 수 있도록 설정

import numpy as np
from network import MyNetwork
from matplotlib import pyplot as plt

# load data
x_train = np.array([[0, 0], [0, 1], [1, 0], [1, 1]])
t_train = np.array([[1, 0], [0, 1], [0, 1], [1, 0]])
x_test = np.array([[0, 0], [0, 1], [1, 0], [1, 1]])
t_test = np.array([[1, 0], [0, 1], [0, 1], [1, 0]])

network = MyNetwork(input_size=2, hidden_size=8, output_size=2)

iters_num = 5000
learning_rate = 0.1

train_size = x_train.shape[0]
batch_size = 4
iter_per_epoch = max(train_size / batch_size, 1)

train_loss_list = []
train_acc_list = []
test_acc_list = []

for i in range(iters_num):
    # batch_mask = np.random.choice(train_size, batch_size)
    # x_batch = x_train[batch_mask]
    # t_batch = t_train[batch_mask]