快速肮脏的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)




欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JavaFX触控事件未触发Ubuntu 20.04触控笔记本电脑   java如何在AWT中关闭窗口?   java Dagger 2:注入具有构造函数参数的成员   创建对象的Java调用类   对象我想在A.java中添加两个数字,并在B.java中打印结果(如何?)   java如何使用AWS SDK for Android从数字海洋空间下载图像?   java Facebook sdk 4.0.1无法使用Android studio获取某些字段   4分钟后web应用程序(Angular 8和Rest API)中的java自动会话超时   在Eclipse for Java EE developers edition中禁用HTML警告   java按字母顺序排列字符串我错过了什么明显的东西吗?   java在Jshell中println和printf有什么不同