コード例 #1
0
def testMeta():
    
    data = Data()
    meta = MetaNet(input_vector_size= 28*28, subnet_output_vector_size=10)
    grapher = Grapher()

    #TODO: Actually use this for something
    subNetList = []

    print("Phase 1: Train Subnet on Numbers")
    accuracy = []
    for datum in data.sub_tr:
        (img, label) = datum
        if (meta.trainSubNet(img, label) == label):
            accuracy.append(1)
        else:
            accuracy.append(0)
    grapher.addGraph(accuracy, "SubNet Train Accuracy")

    print("Phase 2: Train AlterNet on Letters")
    accuracy = []
    for datum in data.alter_tr:
        (img, label) = datum
        if (meta.trainAlterNet(img, label) == label):
            accuracy.append(1)
        else:
            accuracy.append(0)
    grapher.addGraph(accuracy, "AlterNet Train Accuracy")

    print("Phase 3: Train SuperNet")
    accuracy = []
    for datum in data.super_tr:
        (img, label, super_label) = datum
        if (meta.trainSuperNet(img, label, super_label) == super_label):
            accuracy.append(1)
        else:
            accuracy.append(0)
    grapher.addGraph(accuracy, "SuperNet Train Accuracy")

    print("Phase 4: Generate Child Network")
    (child, accuracy) = meta.generateChild(data.child_tr)
    grapher.addGraph(accuracy, "Child Generation Accuracy")

    print("Phase 5: Test Child Network")
    accuracy = []
    for datum in data.child_te:
        (img, label) = datum
        if (child.run(img) == label):
            accuracy.append(1)
        else:
            accuracy.append(0)
    grapher.addGraph(accuracy, "Child Accuracy")

    grapher.graphAll()