如何使用Tensorflow对象检测API和tf.estimator执行自定义数据扩充?

问题描述

我知道model.config已经通过使用类似的方式提供了它们:

  data_augmentation_options {
    random_adjust_contrast {
    }
  }

但是,我需要执行自己的数据扩充方法。以下是我用来训练探测器的当前代码

config = tf.estimator.runconfig(model_dir=modelpath,keep_checkpoint_max=2,save_summary_steps=100/5)
train_and_eval_dict = model_lib.create_estimator_and_inputs(
    run_config=config,hparams=model_hparams.create_hparams(None),pipeline_config_path=pipelinepath,train_steps=trainsteps,eval_steps=evalsteps)
estimator = train_and_eval_dict['estimator']
train_input_fn = train_and_eval_dict['train_input_fn']
eval_input_fns = train_and_eval_dict['eval_input_fns']
eval_on_train_input_fn = train_and_eval_dict['eval_on_train_input_fn']
predict_input_fn = train_and_eval_dict['predict_input_fn']
train_steps = train_and_eval_dict['train_steps']

train_spec,eval_specs = model_lib.create_train_and_eval_specs(
        train_input_fn,eval_input_fns,eval_on_train_input_fn,predict_input_fn,train_steps,eval_on_train_data=False)

trainer_estimator = tf.estimator.train_and_evaluate(
    estimator,train_spec,eval_specs[0])

我尝试使用类似这样的内容来阅读train_input_fn

iterator = train_input_fn().__iter__()
next_element = iterator.get_next()
x_next = next_element[0]
y_next = next_element[1]
x_true_image_shape = x_next.get('true_image_shape',0)

我只能获得张量,但我不知道如何读取该值,甚至不知道如何替换它们。

我的想法是:

  • 阅读train_input_fn
  • 在每批中添加我自己的增强方法

这样做是对的,还是有其他方法可以实现这一目标?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...