diff --git a/.gitignore b/.gitignore index efb8193..6afad02 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ Dataset/ .vscode /*/__pycache__ .mypy_cache +/FilterEvaluator/image* diff --git a/FilterEvaluator/Evaluator.py b/FilterEvaluator/Evaluator.py index 1d011d0..dcdd2e8 100644 --- a/FilterEvaluator/Evaluator.py +++ b/FilterEvaluator/Evaluator.py @@ -51,7 +51,7 @@ layer = 0 # traindata, testdata = Loader.RandomMnist(batchsize, style="VerticalOneLine") # traindata, testdata = Loader.RandomMnist(batchsize, style="VerticalZebra") # traindata, testdata = Loader.Cifar10Mono(batchsize) -traindata, testdata = Loader.Cifar10Mono(batchsize, num_workers=0, shuffle=True) +traindata, testdata = Loader.Cifar10Mono(batchsize, num_workers=0, shuffle=False) @@ -71,17 +71,31 @@ traindata, testdata = Loader.Cifar10Mono(batchsize, num_workers=0, shuffle=True) +for batch_idx, (data, target) in enumerate(traindata): + utils.NumpyToImage(data.cpu().detach().numpy(), CurrentPath+"image", title="TrainData") + break - -# weight = EvaluatorUnsuper.UnsuperLearnSearchWeight(model, layer, traindata, NumSearch=100000, SearchChannelRatio=32, Interation=10) -# np.save("WeightSearch.npy", weight) -weight = np.load(CurrentPath+"WeightSearch.npy") +weight,active = EvaluatorUnsuper.UnsuperLearnSearchWeight(model, layer, traindata, NumSearch=1,SaveChannel=8,SearchChannelRatio=1, Interation=128) utils.NumpyToImage(weight, CurrentPath+"image",title="SearchWeight") + +b =0 + + + + + + + + +# weight,active = EvaluatorUnsuper.UnsuperLearnSearchWeight(model, layer, traindata, NumSearch=100000, SearchChannelRatio=32, Interation=10) +# np.save("WeightSearch.npy", weight) +# weight = np.load(CurrentPath+"WeightSearch.npy") +# utils.NumpyToImage(weight, CurrentPath+"image",title="SearchWeight") # weight = np.load(CurrentPath+"WeightSearch.npy") # bestweight,index = EvaluatorUnsuper.UnsuperLearnFindBestWeight(model,layer,weight,traindata,128,100000) # np.save(CurrentPath+"bestweightSearch.npy", bestweight) # bestweight = np.load(CurrentPath+"bestweightSearch.npy") -# utils.NumpyToImage(bestweight, CurrentPath+"image") +# utils.NumpyToImage(bestweight, CurrentPath+"image",title="SearchWerightBest") # EvaluatorUnsuper.SetModelConvWeight(model,layer,bestweight) # utils.SaveModel(model,CurrentPath+"/checkpointSearch.pkl") @@ -90,12 +104,12 @@ utils.NumpyToImage(weight, CurrentPath+"image",title="SearchWeight") # weight = EvaluatorUnsuper.UnsuperLearnTrainWeight(model, layer, traindata, NumTrain=5000) # np.save("WeightTrain.npy", weight) -# utils.NumpyToImage(bestweight, CurrentPath+"image",title="TrainWeight") # weight = np.load(CurrentPath+"WeightTrain.npy") +# utils.NumpyToImage(weight, CurrentPath+"image",title="TrainWeight") # bestweight, index = EvaluatorUnsuper.UnsuperLearnFindBestWeight(model, layer, weight, traindata, databatchs=64, interation=1000000) # np.save(CurrentPath+"bestweightTrain.npy", bestweight) # bestweight = np.load(CurrentPath+"bestweightTrain.npy") -# utils.NumpyToImage(bestweight, CurrentPath+"image") +# utils.NumpyToImage(bestweight, CurrentPath+"image",title="TrainWerightBest") # EvaluatorUnsuper.SetModelConvWeight(model,layer,bestweight) # utils.SaveModel(model,CurrentPath+"/checkpointTrain.pkl") diff --git a/FilterEvaluator/EvaluatorUnsuper.py b/FilterEvaluator/EvaluatorUnsuper.py index 2d41521..4a0fd11 100644 --- a/FilterEvaluator/EvaluatorUnsuper.py +++ b/FilterEvaluator/EvaluatorUnsuper.py @@ -66,8 +66,6 @@ def UnsuperLearnSearchWeight(model, layer, dataloader, NumSearch=10000, SaveChan for i in range(NumSearch): newlayer.weight.data=utils.SetDevice(torch.from_numpy(newweight[i])) - - output = model.ForwardLayer(dataset,layer-1) output = newlayer(output) output = torch.reshape(output.transpose(0,1),(newlayer.out_channels,-1)) @@ -78,11 +76,8 @@ def UnsuperLearnSearchWeight(model, layer, dataloader, NumSearch=10000, SaveChan dat2 = torch.mean(dat2 * dat2,dim=1) score = dat2.cpu().detach().numpy() - - # score = GetScore(model, layer, newlayer, dataset) minactive = np.append(minactive, score) minweight = np.concatenate((minweight, newweight[i])) - index = minactive.argsort() minactive = minactive[index[0:SaveChannel]] minweight = minweight[index[0:SaveChannel]] @@ -93,7 +88,7 @@ def UnsuperLearnSearchWeight(model, layer, dataloader, NumSearch=10000, SaveChan tl.data=utils.SetDevice(torch.from_numpy(minweight[0:tl.out_channels])) interationbar.close() - return minweight + return minweight, minactive def TrainLayer(netmodel, layer, SearchLayer, DataSet, Epoch=100): netmodel.eval() diff --git a/FilterEvaluator/bestweightSearch.npy b/FilterEvaluator/bestweightSearch.npy index 70a6fe5..9fbe224 100644 Binary files a/FilterEvaluator/bestweightSearch.npy and b/FilterEvaluator/bestweightSearch.npy differ diff --git a/FilterEvaluator/checkpoint.pkl b/FilterEvaluator/checkpoint.pkl index ea74266..3d76e7f 100644 Binary files a/FilterEvaluator/checkpoint.pkl and b/FilterEvaluator/checkpoint.pkl differ diff --git a/FilterEvaluator/image/0-1024.png b/FilterEvaluator/image/0-1024.png deleted file mode 100644 index be95532..0000000 Binary files a/FilterEvaluator/image/0-1024.png and /dev/null differ diff --git a/FilterEvaluator/image/SearchWeight0-1024.png b/FilterEvaluator/image/SearchWeight0-1024.png index 80448d3..1675aa0 100644 Binary files a/FilterEvaluator/image/SearchWeight0-1024.png and b/FilterEvaluator/image/SearchWeight0-1024.png differ diff --git a/FilterEvaluator/image/a0-1024.png b/FilterEvaluator/image/a0-1024.png deleted file mode 100644 index e8561b2..0000000 Binary files a/FilterEvaluator/image/a0-1024.png and /dev/null differ diff --git a/FilterEvaluator/image/b0-1024.png b/FilterEvaluator/image/b0-1024.png deleted file mode 100644 index d3d1b05..0000000 Binary files a/FilterEvaluator/image/b0-1024.png and /dev/null differ diff --git a/FilterEvaluator/imageSearch/0-1024.png b/FilterEvaluator/imageSearch/0-1024.png deleted file mode 100644 index 072d469..0000000 Binary files a/FilterEvaluator/imageSearch/0-1024.png and /dev/null differ diff --git a/FilterEvaluator/imageSearch/1024-2048.png b/FilterEvaluator/imageSearch/1024-2048.png deleted file mode 100644 index 0f98a67..0000000 Binary files a/FilterEvaluator/imageSearch/1024-2048.png and /dev/null differ diff --git a/FilterEvaluator/imageSearch/2048-3072.png b/FilterEvaluator/imageSearch/2048-3072.png deleted file mode 100644 index cca884f..0000000 Binary files a/FilterEvaluator/imageSearch/2048-3072.png and /dev/null differ diff --git a/FilterEvaluator/imageSearch/3072-4096.png b/FilterEvaluator/imageSearch/3072-4096.png deleted file mode 100644 index 0f5176a..0000000 Binary files a/FilterEvaluator/imageSearch/3072-4096.png and /dev/null differ diff --git a/FilterEvaluator/imageTrain/0-1024.png b/FilterEvaluator/imageTrain/0-1024.png deleted file mode 100644 index 620c960..0000000 Binary files a/FilterEvaluator/imageTrain/0-1024.png and /dev/null differ diff --git a/FilterEvaluator/imageTrain/1024-2048.png b/FilterEvaluator/imageTrain/1024-2048.png deleted file mode 100644 index 543db35..0000000 Binary files a/FilterEvaluator/imageTrain/1024-2048.png and /dev/null differ diff --git a/FilterEvaluator/imageTrain/2048-3072.png b/FilterEvaluator/imageTrain/2048-3072.png deleted file mode 100644 index 40c0366..0000000 Binary files a/FilterEvaluator/imageTrain/2048-3072.png and /dev/null differ diff --git a/FilterEvaluator/imageTrain/3072-4096.png b/FilterEvaluator/imageTrain/3072-4096.png deleted file mode 100644 index 212431c..0000000 Binary files a/FilterEvaluator/imageTrain/3072-4096.png and /dev/null differ