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())
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)
def _load_model(self, model_path: str) -> SimpleNet: model = SimpleNet(1) model.load_state_dict(torch.load(model_path)) return model
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)