快速肮脏的tensorflow命令框架
tensorflow-qnd的Python项目详细描述
<;img src="img/logo.png">;
<;div>;
[PYPI版本](https://badge.fury.io/py/tensorflow qnd.svg)(https://badge.fury.io/py/tensorflow qnd)
[![python版本](https://img.shields.io/pypi/py versions/tensorflow qnd.svg)(setup.py)
[![构建状态](https://travis-ci.org/raviqqe/tensorflow-qnd.svg?branch=master)(https://travis ci.org/raviqqe/tensorflow qnd)
[![许可证](https://img.shields.io/badge/license unlicense lightgray.svg)(https://unlicense.org)
是建立在
[tf.contrib.learn模块(https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/learn/python/learn)之上的。
特别是如果您正在使用tensorflow进行研究项目,您可以使用该框架删除大部分样板代码。
要做的是定义一个模型构造函数"model_fn",输入
生产者"input_fn",将数据集馈送到模型。
-配置命令行选项以设置模型等的超参数。
-[分布式TensorFlow](https://www.tensorflow.org/how_-tos/distributed/)
-只需将"def-train"和"evaluate()"的可选参数"distributed"设置为"true"(即` def_train_and_evaluate(distributed=true)`)启用它。
-仅支持数据并行训练
-仅用于训练,不用于推理
tensorflow qnd
````
使用"add_flag"和"add_required_flag"函数添加命令行参数。
2.用
`def\u train\u evaluate`或'def\u infer 3'函数定义一个'train\u evaluate'或'infer3'函数。将'model_fn'(model constructor)和'input_fn'(input producer)函数
传递给定义的函数。
4。使用适当的命令行参数运行脚本。
有关详细信息,参见[文档](https://raviqqe.github.io/tensorflow qnd/qnd)。
Distributed=(操作系统环境中的"Distributed")
model=mnist.def_model()
def main():
logging.getlogger().setlevel(logging.info)
train廑and廑evaluate(model,读写文件)
定义读取文件(文件名队列):
uu,serialized=tf.tfrecordreader().read(文件名队列)
def scalar_feature(dtype):返回tf.fixedlenfeature([],dtype)
features=tf.parse_single_example(serialized,{
"image_raw":scalar_feature(tf.string),
"label":标量特征(tf.int64),
}
image=tf.decode_raw(特征["image_raw"],tf.uint8)
image.set_shape([28**2])
return _preprocess_image(image),features["label"]
def serving_input_fn():
features={
"image":"u preprocess_image(tf.placeholder(tf.uint8,[none,28**2]),
}
return tf.contrib.learn.inputfnops(features,none,功能)
def minimize(loss):
返回tf.train.adamoptimizer()。最小化(
损失,
tf.contrib.framework.get_global_step())
def def_model():
qnd.add_flag("hidden_layer_size",type=int,default=64,
help="hidden layer size")
def model(image,number=none,mode=none):
h=tf.contrib.layers.full_connected(image,
qnd.flags.hidden_layer_size)
h=tf.contrib.layers.fully_connected(h,10,activation_fn=none)
predictions=tf.argmax(h,axis=1)
if mode==tf.contrib.learn.modekeys.infer:
return predictions
损失=tf.减少平均值(
tf.nn.sparse_softmax_cross_entropy_with_logits(labels=number,
logits=h))
{
"准确性":tf.contrib.metrics.streaming_accurity(predictions,
number)[1],
}
return model
```
您可以使用以下接口创建命令。
```
用法:train.py[-h][--output_dir output_dir][--train_steps train_steps]
[--eval_steps eval_steps]
[--min_eval_frequency min_eval frequency]
[--num_cores num cores][--log_device_placement]
[--save_summary_steps save_summary_steps]
[--save_checkpoints_steps save_checkpoints_steps]
[--keep_checkpoint_max keep_checkpoint_max]
[--batch_size batch_size]
[--batch_queue_capacity batch_queue_capacity]
[--num_batch_threads num_batch_threads]--train_file
train_file[--filename_queue_capacity filename_queue_capacity]
--eval_file eval_file[--hidden_layer_size隐藏层大小]
可选参数:
-h,--帮助显示此帮助消息并退出存储检查点和事件文件的目录(默认值:无)
--评估步骤评估步骤
最大评估步骤数(默认值:100)
--最小评估频率最小评估频率列车步骤数中的最小评估频率
(默认值:1)
--num_cores num_cores
使用的CPU内核数。0表示使用默认值
。(默认值:0)
--记录设备放置
如果指定,记录设备放置信息
(默认值:false)
--保存摘要步骤保存摘要步骤
每次保存摘要的步骤数
(默认值:100)
--保存检查点步骤保存检查点步骤
每次保存模型的步骤数
(默认值:无)
--保持检查点最大值保持检查点最大值
最大值保留的检查点文件数(默认值:86058)
--批处理大小批处理大小
小批处理大小(默认值:64)
--批处理队列容量批处理队列容量
批处理队列容量(默认值:1024)
--批处理线程数批处理线程数
用于创建批的线程数(默认值:2)
--train_file train_file
train数据文件的文件路径。全局可用。
(例如train/*.tfrecords)(默认值:无)
--文件名队列容量文件名队列容量
数据(默认值:32)
--评估文件评估文件
评估数据文件的文件路径。有一个glob可用。
(例如eval/*.tfrecords)(默认值:无)
--隐藏层大小隐藏层大小
隐藏层大小(默认值:64)
`````
explore[示例](examples)directory了解更多信息,并查看如何运行
它们。
您必须使用
`tf.contrib.framework.get_global_step()'获取全局步骤变量,并在每个
训练步骤中更新(增量)。
"model fn"的"eval_metric"值或作为
"model fn ops"的参数,它们的值将是每个评估步骤中最后一批的值。
或者拉取
请求。
\license
[无许可证](https://unlicense.org)