tensorflow 高级api使用

阅读: 评论:0

tensorflow 高级api使用

tensorflow 高级api使用

1、定义模型

def my_model(features,labels,mode,params):#此处的features是真实的数据,不是特征列

return tf.estimator.EstimatorSpec(mode, loss=loss, train_op=train_op)

2、estimator包裹自定义模型

classifier = tf.estimator.Estimator(model_fn=my_model,params={'feature_columns': my_feature_columns,#包含特征列的列表'hidden_units': FLAGS.hidden_units.split(','),'learning_rate': FLAGS.learning_rate,'dropout_rate': FLAGS.dropout_rate},config=tf.estimator.RunConfig(model_dir&#del_dir, save_checkpoints_steps=FLAGS.save_checkpoints_steps)
)

3、自定义生成数据的函数

这里需要注意的是:如果自定义模型时采用

net = fc.input_layer(features, params['feature_columns'])

输入数据时,而不是tf.placeholder的方式时,需要用以下方式自定义生成数据的函数

def parse_exmp(serial_exmp):click = fc.numeric_column("click", default_value=0, dtype=tf.int64)pay = fc.numeric_column("pay", default_value=0, dtype=tf.int64)fea_columns = [click, pay]fea_columns += my_feature_columnsfeature_spec = tf.feature_column.make_parse_example_spec(fea_columns)#把数据映射过来feats = tf.parse_single_example(serial_exmp, features=feature_spec)click = feats.pop('click')pay = feats.pop('pay')return feats, {'ctr': tf.to_float(click), 'cvr': tf.to_float(pay)}def train_input_fn(filenames, batch_size, shuffle_buffer_size):#dataset = tf.data.TFRecordDataset(filenames)files = tf.data.Dataset.list_files(filenames)dataset = files.ib.data.parallel_interleave(tf.data.TFRecordDataset, cycle_length=FLAGS.num_parallel_readers))# Shuffle, repeat, and batch the examples.if shuffle_buffer_size > 0:dataset = dataset.shuffle(shuffle_buffer_size)#dataset = dataset.ib.data.map_and_batch(map_func=parse_exmp, batch_size=batch_size))#dataset = peat().prefetch(1)dataset = dataset.map(parse_exmp, num_parallel_calls=8)dataset = peat().batch(batch_size).prefetch(1)print(dataset.output_types)print(dataset.output_shapes)# Return the read end of urn dataset

4、生成TrainSpec和Eval_Spec

#train_files 为tfrecord格式

train_spec = tf.estimator.TrainSpec(input_fn=lambda: train_input_fn(train_files, batch_size, shuffle_buffer_size),max_steps&#ain_steps
)
input_fn_for_eval = lambda: eval_input_fn(eval_files, batch_size)
eval_spec = tf.estimator.EvalSpec(input_fn=input_fn_for_eval, throttle_secs=600, steps=None)

5、训练并且评估

ain_and_evaluate(classifier, train_spec, eval_spec)

6、获得预测结果

results = classifier.evaluate(input_fn=input_fn_for_eval)

 

本文发布于:2024-01-28 18:51:58,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17064391219521.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:高级   tensorflow   api
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23