arn类,调节程序运行时参数。num_cores选择使用核数量,num_ps_replicas调节参数服务器数量,gpu_memory_fraction控制使用GPU存储百分比。
RunConfig master参数,指定训练模型主服务器地址,task设置任务ID,每个任务ID控制一个训练模型参数服务器replica。
初始化一个RunConfig对象,传进Estimator。RunConfig参数默认值在本地运行简单模型,只用一个任务ID,80%GPU存储参数传进Estimator。运行时参数会自动运用,不用担心ConfigProto、GPUOptions细节。快速改变参数实现分布式模型训练、参数服务器使用。
Experiment,简单易用建立模型实验类,建模所需所有信息,Estimator、训练数据、评估数据、平估指标、监督器、评估频率。可以选择当地运行,可以和RunConfig配合分布式试验。LearnRunner,方便做实验。
tf.app.flags定义可以从命令行传入参数,数据、模型、输出文件路径、训练、评估步数。schedule试验类型。local_run()当地试验。run_std_server()标准服务器试验。master_grpc_url主要GRPC TensorFlow服务器。num_parameter_servers参数服务器数量。
建立Experiment对象函数,FLAGS建立RunConfig,机器学习模型Estimator,建立广度深度结合分类器(DNNLinearCombinedClassifier)。input_train_fn、input_test_fn,数据来源、提供训练、评估数据。
create_experiment_fn()函数传入LearnRunner进行不同类型试验,当地、服务器试验。试验结果存储到不同路径。
深度学习Estimator。TF.Learn包含简单易用深度神经网络Estimator。分类问题DNNClassifier。_input_fn()建立数据,layers模块建立特征列。
特征列、每层隐藏神经单元数、标识类别数传入DNNClassifier,迅速建立深度神经网络模型。
fit()、eva luate()方法模型训练、评估。
每行数据都有权重。DNNClassfier,指定一列为权重列,自动分配到训练过程。四行数据,每行不同权重。权重列、特征列放入features。
DNNClassifier表明权重列列名 w,特征列列名x(x转换特征列)。
传入自定义metrics方程_my_metric_op(),操作predictions、targets进行metrics计算。只考虑二分类问题,tf.slice()剪切predictions第二列作预测值。
tf.slice()传入输入矩阵input,剪切开始元素begin,剪切Tensor形状size,size[i]代表第i个维度想剪切矩阵shape。
根据需求任意在predictions、targets操作实现想要metrics计算,eva luate()传入metrics函数,TF.Learn根据metrics评估模型。
eva luate()可以提供多个metrics,_my_metric_op自定义,tr.contrib自带。
optimizer提供自定义函数,定义自己的优化函 ,包含指数递减学习率。
tf.contrib.framework.get_or_create_global_step()得到目前模型训练到达全局步数。tf.train.exponential_decay()对学习率指数递减,避免爆炸梯度。
广度深度模型,DNNLinearCombinedClassifier。谷歌广泛用在各种机器学习应用,深度神经网络和逻辑回归结合,不同特征通过两种不同方式结合,更能体现应用意义和更有效推荐结果。类似Kaggle竞赛Ensemble。
更多参数,与DNNClassifier、LinearClassifier不同特征列选择。
gender、education、relationship、workclass转换为FeatureColumn。分wide_columns、deep_columns。wide_columns用在LinearClassifier,deep_columns用在DNNClassifier。分别传入DNNLinearCombinedClassifier建立广度深度模型。具有线性特征,也具有深度神经网络特征。
参考资料:
《TensorFlow实战》
欢迎付费咨询(150元每小时),我的微信:qingxingfengzi