平台aistudio 笔记本
python 3.7
paddle 1.6 1.8都测试过
模型resnet_v2_50_imagenet
paddle.enable_static()
module = hub.Module(name="resnet_v2_50_imagenet")
from paddlehub.dataset.base_cv_dataset import BaseCVDataset
class DemoDataset(BaseCVDataset):
def __init__(self):
# 数据集存放位置
self.dataset_dir = "data/data84458"
super(DemoDataset, self).__init__(
base_path=self.dataset_dir,
train_list_file="train_list.txt",
validate_list_file="validate_list.txt",
test_list_file="test_list.txt",
#predict_file="predict_list.txt",
label_list_file="label_list.txt",
)
dataset = DemoDataset()
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
img = mpimg.imread('data/data84458/yangmi/ym85.jpg')
img1 = mpimg.imread('data/data84458/liuyifei/lyf14.jpg')
plt.figure(figsize=(10,10))
plt.subplot(1,2,1)
plt.imshow(img)
plt.axis('off')
plt.subplot(1,2,2)
plt.imshow(img1)
plt.axis('off')
plt.show()
print("杨幂\t\t\t\t\t\t\t\t刘亦菲")
data_reader = hub.reader.ImageClassificationReader(
image_width=module.get_expected_image_width(),
image_height=module.get_expected_image_height(),
images_mean=module.get_pretrained_images_mean(),
images_std=module.get_pretrained_images_std(),
dataset=dataset)
config = hub.RunConfig(
use_cuda=True, #是否使用GPU训练,默认为False;
num_epoch=3, #Fine-tune的轮数;
checkpoint_dir="cv_finetune_turtorial_demo",#模型checkpoint保存路径, 若用户没有指定,程序会自动生成;
batch_size=3, #训练的批大小,如果使用GPU,请根据实际情况调整batch_size;
eval_interval=10, #模型评估的间隔,默认每100个step评估一次验证集;
strategy=hub.finetune.strategy.DefaultFinetuneStrategy()) #Fine-tune优化策略;
input_dict, output_dict, program = module.context(trainable=True)
img = input_dict["image"]
feature_map = output_dict["feature_map"]
feed_list = [img.name]
# task = hub.ImageClassifierTask(
# data_reader=data_reader,
# feed_list=feed_list,
# feature=feature_map,
# num_classes=dataset.num_labels,
# config=config)
task = hub.ImageClassifierTask(
data_reader=data_reader,
feed_list=feed_list,
feature=feature_map,
num_classes=dataset.num_labels,
config=config)
收藏
点赞
0
个赞
请登录后评论
TOP
切换版块
报错内容
[2021-04-27 17:59:44,941] [ INFO] - 267 pretrained paramaters loaded by PaddleHub
---------------------------------------------------------------------------AttributeError Traceback (most recent call last) in
16 feature=feature_map,
17 num_classes=dataset.num_labels,
---> 18 config=config)
/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlehub/finetune/task/classifier_task.py in __init__(self, feature, num_classes, feed_list, data_reader, startup_program, config, hidden_units, metrics_choices)
47 main_program=main_program,
48 feed_list=feed_list,
---> 49 startup_program=startup_program,
50 config=config,
51 metrics_choices=metrics_choices)
/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlehub/finetune/task/base_task.py in __init__(self, feed_list, data_reader, main_program, startup_program, config, metrics_choices)
296 main_program, for_test=False)
297 if startup_program is None:
--> 298 self._base_startup_program = clone_program(
299 fluid.default_startup_program(), for_test=False)
300 else:
/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlehub/common/paddle_helper.py in clone_program(origin_program, for_test)
272
273
--> 274 def set_parameter_trainable(program, trainable=True):
275 for param in program.global_block().iter_parameters():
276 param.trainable = trainable
/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlehub/common/paddle_helper.py in _copy_vars_and_ops_in_blocks(from_block, to_block)
145 param['gradient_clip_attr'] = eval(
146 "fluid.clip.%s(clip_norm = %f, group_name = \"%s\")" %
--> 147 (clip_type, clip_norm, group_name))
148
149 return param
/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddlehub/common/paddle_helper.py in get_variable_info(var)
63 var_info['lod_level'] = var.lod_level
64 var_info['shape'] = var.shape
---> 65 except:
66 pass
67
AttributeError: 'Parameter' object has no attribute 'gradient_clip_attr'