Exemplo n.º 1
0
def execute_similarity_search(img_path, num_algs=32):
    # this part can be refactored into a "setup model" func
    # the func can have a flag for initing the hook or not.
    path = "../saved_models/cifar_model_300_epochs.pth"
    model = SimpleNet(10)
    model.load_state_dict(torch.load(path))
    # Init forward hook for exposing dense layer vectors
    sf = SaveFeatureVectors(model.conv13[2])
    model.eval()
    is_correct = 0.0
    path_list = []
    for inputs, labels, paths in _get_single_image_batch(img_path):
        outputs = model(inputs.float())
        _, pred = outputs.max(1)
        is_correct += (pred == labels.long()).sum().item()
        print(f"Num correct: {is_correct}")
        path_list.extend(paths)

    # Generate Hash: todo-try stuff here.
    m = MinHash(num_perm=num_algs)
    m.update(sf.features.flatten())
Exemplo n.º 2
0
def execute_inference(create_hashes=False,
                      num_algs=32,
                      hash_index="lsh-demo-3"):
    path = "../saved_models/cifar_model_300_epochs.pth"
    model = SimpleNet(10)
    model.load_state_dict(torch.load(path))

    # Init forward hook for exposing dense layer vectors
    sf = SaveFeatureVectors(model.conv13[2])
    model.eval()
    is_correct = 0.0
    path_list = []
    for inputs, labels, paths in _get_test_batch():
        outputs = model(inputs.float())
        _, pred = outputs.max(1)
        is_correct += (pred == labels.long()).sum().item()
        print(f"Num correct: {is_correct}")
        path_list.extend(paths)

    print("Extracting Vectors")
    if create_hashes:
        generate_hash_tables(path_list, sf.features)
Exemplo n.º 3
0
 def _load_model(self, model_path: str) -> SimpleNet:
     model = SimpleNet(1)
     model.load_state_dict(torch.load(model_path))
     return model
Exemplo n.º 4
0
from simple_net import SimpleNet
from predictFromArchive import predictFromArchive
import torch
from glob import glob
import os

networkWeights = 'trained_simplenet.torch'
wantedShape = (41, 53, 38, 6)
crop = (slice(4, 28), slice(20, 44), slice(7, 31))
resizeFactor = 2

dimIn = 12 * 12 * 12 * 6
dimOut = 4
net = SimpleNet(dimIn=dimIn, dimOut=dimOut).cpu()
net.load_state_dict(torch.load(networkWeights, map_location='cpu'))
archivPath = os.path.dirname(os.path.abspath(__file__))
for archiv in glob("/flywheel/v0/input/dtiInitArchive/dti*.zip"):
    predictFromArchive(archiv, "/flywheel/v0/output/neuro-detect_report.txt",
                       net)