提交 b7967b41 编写于 作者: littletomatodonkey's avatar littletomatodonkey

fix infer

上级 edd7382d
...@@ -12,7 +12,6 @@ ...@@ -12,7 +12,6 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
import paddle.fluid as fluid
import numpy as np import numpy as np
import argparse import argparse
import utils import utils
...@@ -22,9 +21,12 @@ __dir__ = os.path.dirname(os.path.abspath(__file__)) ...@@ -22,9 +21,12 @@ __dir__ = os.path.dirname(os.path.abspath(__file__))
sys.path.append(__dir__) sys.path.append(__dir__)
sys.path.append(os.path.abspath(os.path.join(__dir__, '../..'))) sys.path.append(os.path.abspath(os.path.join(__dir__, '../..')))
from ppcls.modeling import architectures
from ppcls.utils.save_load import load_dygraph_pretrain from ppcls.utils.save_load import load_dygraph_pretrain
from ppcls.modeling import architectures
import paddle
from paddle.distributed import ParallelEnv
import paddle.nn.functional as F
def parse_args(): def parse_args():
def str2bool(v): def str2bool(v):
...@@ -93,35 +95,35 @@ def main(): ...@@ -93,35 +95,35 @@ def main():
operators = create_operators() operators = create_operators()
# assign the place # assign the place
if args.use_gpu: if args.use_gpu:
gpu_id = fluid.dygraph.parallel.Env().dev_id gpu_id = ParallelEnv().dev_id
place = fluid.CUDAPlace(gpu_id) place = paddle.CUDAPlace(gpu_id)
else: else:
place = fluid.CPUPlace() place = paddle.CPUPlace()
with fluid.dygraph.guard(place): paddle.disable_static(place)
net = architectures.__dict__[args.model]()
load_dygraph_pretrain(net, args.pretrained_model, net = architectures.__dict__[args.model]()
args.load_static_weights) load_dygraph_pretrain(net, args.pretrained_model, args.load_static_weights)
image_list = get_image_list(args.image_file) image_list = get_image_list(args.image_file)
for idx, filename in enumerate(image_list): for idx, filename in enumerate(image_list):
data = preprocess(filename, operators) data = preprocess(filename, operators)
data = np.expand_dims(data, axis=0) data = np.expand_dims(data, axis=0)
data = fluid.dygraph.to_variable(data) data = paddle.to_tensor(data)
net.eval() net.eval()
outputs = net(data) outputs = net(data)
if args.model == "GoogLeNet": if args.model == "GoogLeNet":
outputs = outputs[0] outputs = outputs[0]
else: else:
outputs = fluid.layers.softmax(outputs) outputs = F.softmax(outputs)
outputs = outputs.numpy() outputs = outputs.numpy()
probs = postprocess(outputs) probs = postprocess(outputs)
rank = 1 rank = 1
print("Current image file: {}".format(filename)) print("Current image file: {}".format(filename))
for idx, prob in probs: for idx, prob in probs:
print("\ttop{:d}, class id: {:d}, probability: {:.4f}".format( print("\ttop{:d}, class id: {:d}, probability: {:.4f}".format(
rank, idx, prob)) rank, idx, prob))
rank += 1 rank += 1
return return
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册