Diff
checker
文本
文本
图像
文档
Excel
文件夹
Legal
Enterprise
桌面版
定价
登录
下载 Diffchecker 桌面版
比较文本
查找两个文本文件之间的差异
工具
历史
实时编辑器
折叠未更改行
关闭换行
视图
拆分
统一
比对精度
智能
单词
字符
语法高亮
选择语法
忽略
文本转换
转到第一个差异
编辑输入
Diffchecker Desktop
运行Diffchecker最安全的方式。获取Diffchecker桌面应用:您的差异永远不会离开您的电脑!
获取桌面版
Untitled diff
创建于
8年前
差异永不过期
清除
导出
分享
解释
3 删除
行
总计
删除
字符
总计
删除
要继续使用此功能,请升级到
Diff
checker
Pro
查看价格
62 行
全部复制
10 添加
行
总计
添加
字符
总计
添加
要继续使用此功能,请升级到
Diff
checker
Pro
查看价格
66 行
全部复制
复制
已复制
复制
已复制
#Modified from https://github.com/amrit-das/Custom-Model-Training-PyTorch/blob/master/predict.py
import torch
import torch
import torch.nn as nn
import torch.nn as nn
复制
已复制
复制
已复制
from torchvision.models import resnet18
#
from torchvision.models import resnet18
from torchvision.transforms import transforms
from torchvision.transforms import transforms
import matplotlib.pyplot as plt
import matplotlib.pyplot as plt
import numpy as np
import numpy as np
from torch.autograd import Variable
from torch.autograd import Variable
import torch.functional as F
import torch.functional as F
from PIL import Image
from PIL import Image
import os
import os
import sys
import sys
import argparse
import argparse
复制
已复制
复制
已复制
from prune import *
from finetune import *
parser = argparse.ArgumentParser(description = 'To Predict from a trained model')
parser = argparse.ArgumentParser(description = 'To Predict from a trained model')
parser.add_argument('-i','--image', dest = 'image_name', required = True, help='Path to the image file')
parser.add_argument('-i','--image', dest = 'image_name', required = True, help='Path to the image file')
parser.add_argument('-m','--model', dest = 'model_name', required = True, help='Path to the model')
parser.add_argument('-m','--model', dest = 'model_name', required = True, help='Path to the model')
parser.add_argument('-n','--num_class',dest = 'num_classes', required = True, help='Number of training classes')
parser.add_argument('-n','--num_class',dest = 'num_classes', required = True, help='Number of training classes')
args = parser.parse_args()
args = parser.parse_args()
复制
已复制
复制
已复制
path_to_model = "./
models/
"+args.model_name
path_to_model = "./
"+args.model_name
checkpoint = torch.load(path_to_model)
#
checkpoint = torch.load(path_to_model)
复制
已复制
复制
已复制
model = resnet18(num_classes = int(args.num_classes))
model = torch.load(args.model_name).cuda()
model.load_state_dict(checkpoint)
#
model = resnet18(num_classes = int(args.num_classes))
#
model.load_state_dict(checkpoint)
model.eval()
model.eval()
def predict_image(image_path):
def predict_image(image_path):
复制
已复制
复制
已复制
print("predic
it
on in progress")
print("predic
ti
on in progress")
image = Image.open(image_path)
image = Image.open(image_path)
transformation = transforms.Compose([
transformation = transforms.Compose([
transforms.RandomResizedCrop(224),
transforms.RandomResizedCrop(224),
transforms.RandomHorizontalFlip(),
transforms.RandomHorizontalFlip(),
transforms.ToTensor(),
transforms.ToTensor(),
transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
])
])
image_tensor = transformation(image).float()
image_tensor = transformation(image).float()
image_tensor = image_tensor.unsqueeze_(0)
image_tensor = image_tensor.unsqueeze_(0)
if torch.cuda.is_available():
if torch.cuda.is_available():
image_tensor.cuda()
image_tensor.cuda()
input = Variable(image_tensor)
input = Variable(image_tensor)
output = model(input)
output = model(input)
index = output.data.numpy().argmax()
index = output.data.numpy().argmax()
return index
return index
def class_mapping(index):
def class_mapping(index):
mapping=open('class_mapping.txt','r')
mapping=open('class_mapping.txt','r')
class_map={}
class_map={}
for line in mapping:
for line in mapping:
l=line.strip('\n').split('~')
l=line.strip('\n').split('~')
class_map[l[1]]=l[0]
class_map[l[1]]=l[0]
return class_map[str(index)]
return class_map[str(index)]
if __name__ == "__main__":
if __name__ == "__main__":
复制
已复制
复制
已复制
imagepath = "./
Predict_Image
/"+args.image_name
imagepath = "./
test/Lemon
/"+args.image_name
prediction = predict_image(imagepath)
prediction = predict_image(imagepath)
name = class_mapping(prediction)
name = class_mapping(prediction)
print("Predicted Class: ",name)
print("Predicted Class: ",name)
已保存差异
原始文本
打开文件
import torch import torch.nn as nn from torchvision.models import resnet18 from torchvision.transforms import transforms import matplotlib.pyplot as plt import numpy as np from torch.autograd import Variable import torch.functional as F from PIL import Image import os import sys import argparse parser = argparse.ArgumentParser(description = 'To Predict from a trained model') parser.add_argument('-i','--image', dest = 'image_name', required = True, help='Path to the image file') parser.add_argument('-m','--model', dest = 'model_name', required = True, help='Path to the model') parser.add_argument('-n','--num_class',dest = 'num_classes', required = True, help='Number of training classes') args = parser.parse_args() path_to_model = "./models/"+args.model_name checkpoint = torch.load(path_to_model) model = resnet18(num_classes = int(args.num_classes)) model.load_state_dict(checkpoint) model.eval() def predict_image(image_path): print("prediciton in progress") image = Image.open(image_path) transformation = transforms.Compose([ transforms.RandomResizedCrop(224), transforms.RandomHorizontalFlip(), transforms.ToTensor(), transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]) ]) image_tensor = transformation(image).float() image_tensor = image_tensor.unsqueeze_(0) if torch.cuda.is_available(): image_tensor.cuda() input = Variable(image_tensor) output = model(input) index = output.data.numpy().argmax() return index def class_mapping(index): mapping=open('class_mapping.txt','r') class_map={} for line in mapping: l=line.strip('\n').split('~') class_map[l[1]]=l[0] return class_map[str(index)] if __name__ == "__main__": imagepath = "./Predict_Image/"+args.image_name prediction = predict_image(imagepath) name = class_mapping(prediction) print("Predicted Class: ",name)
更改后文本
打开文件
#Modified from https://github.com/amrit-das/Custom-Model-Training-PyTorch/blob/master/predict.py import torch import torch.nn as nn #from torchvision.models import resnet18 from torchvision.transforms import transforms import matplotlib.pyplot as plt import numpy as np from torch.autograd import Variable import torch.functional as F from PIL import Image import os import sys import argparse from prune import * from finetune import * parser = argparse.ArgumentParser(description = 'To Predict from a trained model') parser.add_argument('-i','--image', dest = 'image_name', required = True, help='Path to the image file') parser.add_argument('-m','--model', dest = 'model_name', required = True, help='Path to the model') parser.add_argument('-n','--num_class',dest = 'num_classes', required = True, help='Number of training classes') args = parser.parse_args() path_to_model = "./"+args.model_name #checkpoint = torch.load(path_to_model) model = torch.load(args.model_name).cuda() #model = resnet18(num_classes = int(args.num_classes)) #model.load_state_dict(checkpoint) model.eval() def predict_image(image_path): print("prediction in progress") image = Image.open(image_path) transformation = transforms.Compose([ transforms.RandomResizedCrop(224), transforms.RandomHorizontalFlip(), transforms.ToTensor(), transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]) ]) image_tensor = transformation(image).float() image_tensor = image_tensor.unsqueeze_(0) if torch.cuda.is_available(): image_tensor.cuda() input = Variable(image_tensor) output = model(input) index = output.data.numpy().argmax() return index def class_mapping(index): mapping=open('class_mapping.txt','r') class_map={} for line in mapping: l=line.strip('\n').split('~') class_map[l[1]]=l[0] return class_map[str(index)] if __name__ == "__main__": imagepath = "./test/Lemon/"+args.image_name prediction = predict_image(imagepath) name = class_mapping(prediction) print("Predicted Class: ",name)
查找差异