我正在尝试在google colab
上使用tensorflow训练一个自定义对象检测器,使用这个构建您自己的对象检测器——PyTorch与tensorflow,以及如何开始?
我遵循了博客中的所有步骤
这是代码
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from absl import flags
import tensorflow as tf
from object_detection import model_hparams
from object_detection import model_lib
model_dir = "/content/drive/MyDrive/Tensorflow/models/research/faster_rcnn_inception_v2_coco_2018_01_28/model_dir"
config = tf.estimator.RunConfig(model_dir=model_dir)
pipeline_config_path= "/content/drive/MyDrive/Tensorflow/models/research/faster_rcnn_inception_v2_coco_2018_01_28/pipeline.config"
num_train_steps=10000
train_and_eval_dict = model_lib.create_estimator_and_inputs(
run_config=config,
hparams=model_hparams.create_hparams(None),
pipeline_config_path = pipeline_config_path,
train_steps =num_train_steps,
sample_1_of_n_eval_examples = 1)
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']
tf.estimator.train_and_evaluate(estimator,train_spec,eval_specs[0])
train_spec
和eval_specs[0]
在哪里?
我收到警告说这两个没有找到
我该怎么办?
有人能帮忙吗?
这是可以使用预测的旧时尚。模型到估计器
train_spec和eval_spec不过是使用相同数据集或相似性的标志。例如,您有多行输入,更改输入也反映了相似范围内的输出。
穿着短裤,他们可以进行特定的训练组或配对表!
当你考虑在特定范围上进行训练时,这对一小组数据来说是个好主意,但模型需要学习空间,那么在子数据集上进行训练是一种替代方案,我们在某些任务中不使用train_and_evalve。
表匹配很快,因为输入不需要完全相同,但您可以在训练时根据输入及其反馈估计输出,并且预测不控制参数。[A,B,C,D]->[A,B,C,E]区分多少个单位?
[样本]:
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Functions
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
def train_input_fn():
pass
def eval_input_fn():
pass
def input_fn():
input = tf.random.uniform(shape=[1, 16, 16 * 3], minval=5, maxval=10, dtype=tf.int64)
label = tf.constant( [0], shape=( 1, 1, 1 ) )
return input, label
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
: Model Initialize
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
model = tf.keras.models.Sequential([
tf.keras.layers.InputLayer(input_shape=( 16, 16 * 3 )),
tf.keras.layers.Reshape((n_numpointer, n_roles)),
tf.keras.layers.Reshape(( 16, 16 * 3 )),
tf.keras.layers.Bidirectional(tf.keras.layers.LSTM(64, return_sequences=True, return_state=False)),
tf.keras.layers.Bidirectional(tf.keras.layers.LSTM(64)),
tf.keras.layers.Dense(1),
])
model.add(tf.keras.layers.Flatten())
model.add(tf.keras.layers.Dense(1))
model.add(tf.keras.layers.Dense(1))
model.summary()
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
: Optimizer
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
optimizer = tf.keras.optimizers.Nadam( learning_rate=0.0001, beta_1=0.9, beta_2=0.999, epsilon=1e-07, name='Nadam' )
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
: Loss Fn
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
lossfn = tf.keras.losses.MeanSquaredLogarithmicError(reduction=tf.keras.losses.Reduction.AUTO, name='mean_squared_logarithmic_error')
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
: Model Summary
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
model.compile(optimizer=optimizer, loss=lossfn)
train_spec = tf.estimator.TrainSpec(input_fn=train_input_fn, max_steps=1000)
eval_spec = tf.estimator.EvalSpec(input_fn=eval_input_fn)
est_model = tf.keras.estimator.model_to_estimator(keras_model=model)
tf.estimator.train_and_evaluate(est_model, train_spec, eval_spec)