【tensorflow学习】处理MNISTS数据集

  • 理论
  • 应用
  • To Do

理论

理论知识
交叉熵理解

应用

#encoding=utf8
import tensorflow as tf
import pandas as pd
import argparse
import numpy as np
import gzip
import os
import sysdef parse_arg():parser = argparse.ArgumentParser("Training for FTRL Ctr model.")parser.add_argument("--train_data_dir",type=str,required=True,help="The path of training data.")parser.add_argument("--batch_size",type=int,default=10,help="The number of batch size.")parser.add_argument("--feature_num",type=int,default=14,help="The number of features.")return parser.parse_args()def smart_open(file_name):"""@Brief: 适配打开.gz文件"""try:if file_name[-3:] == ".gz":return gzip.open(file_name, 'r')else:return open(file_name, 'r')except Exception as e:print("smart open file_name: {0} error: {1}".format(file_name,e), file=sys.stderr)return Nonedef one_hot_feature(feature_list):m = len(feature_list)n = len(feature_list[0])sign_dict_list = [{}] * nindex_list = [0] * nfor i in range(m):for j in  range(n):#print(i,j,m,n,feature_list[i][j])if feature_list[i][j] not in sign_dict_list[j].keys():sign_dict_list[j][feature_list[i][j]] = index_list[j]#print("index = {0} i= {1}  j ={2}  value = {3}".format(sign_dict_list[j][feature_list[i][j]], i, j, feature_list[i][j]))index_list[j] += 1ins_list = []for i in range(m):ins_i_sparse = []pos_list = []for j in range(n):feature_j_sparse = [0.0] * len(sign_dict_list[j])#print("index = {0}".format(sign_dict_list[j][feature_list[i][j]]))feature_j_sparse[sign_dict_list[j][feature_list[i][j]]] = 1ins_i_sparse += feature_j_sparsepos_list.append(sign_dict_list[j][feature_list[i][j]])ins_list.append(ins_i_sparse)return np.array(ins_list)def read_data(file_dir, feature_num):labels = []features = []files = os.listdir(file_dir)for file in files:file = file_dir + "/" + fileif not os.path.isdir(file):f = smart_open(file)for line in f:if "gz" in file:data = line.decode().strip().split('\t')else:data = line.strip().split('\t')label_feature = data[0].split(' ')label = float(label_feature[1])feature = list(map(lambda x: x.split(':')[0], label_feature[2:]))labels.append([label])if (len(feature) < feature_num):continuefeatures.append(feature[:feature_num])#print("len :{0}".format(len(feature)))return labels, featuresdef model(feature, label):n = feature.shape[1]x = tf.placeholder(dtype = tf.float32, name = 'x', shape = [None, n])y = tf.placeholder(dtype = tf.float32, name = 'y', shape = [None, 1])W = tf.Variable(tf.truncated_normal([n, 1], stddev = 0.1))bias = tf.Variable(tf.zeros([1]))predict_y = tf.sigmoid(tf.matmul(x, W) + bias)y_ = tf.sigmoid(tf.matmul(x, W) + bias)loss = tf.reduce_mean(-tf.matmul(tf.transpose(y), tf.log(predict_y)) - tf.matmul(tf.transpose(1-y), tf.log(1-predict_y)))opt =  tf.train.FtrlOptimizer(0.03, l1_regularization_strength=0.01, l2_regularization_strength=0.01).minimize(loss)auc_value, auc_op = tf.metrics.auc(labels=y,predictions=y_)init = tf.group(tf.global_variables_initializer(),tf.local_variables_initializer())with tf.Session() as sess:sess.run(init)for i in range(10):_, _loss, predict_y_1, _y, _auc_op= sess.run([opt, loss, predict_y, y, auc_op], feed_dict = {x: feature, y: label})print("pass: {0}  loss = {1}  auc = {2}".format(i, _loss, sess.run(auc_value)))if __name__ == '__main__':args = parse_arg()labels, features = read_data(args.train_data_dir, args.feature_num)features = one_hot_feature(features)model(features, labels)

To Do

实现大规模离散LR的参数稀疏存储及更新

【tensorflow学习】Ftrl学习相关推荐

  1. Keras还是TensorFlow?深度学习框架选型实操分享

    译者| 王天宇.林椿眄 责编| Jane.琥珀 出品| AI科技大本营 深度学习发展势头迅猛,但近两年涌现的诸多深度学习框架让初学者无所适从.如 Google 的 TensorFlow.亚马逊的 MX ...

  2. tensorflow 1.0 学习:参数和特征的提取

    tensorflow 1.0 学习:参数和特征的提取 在tf中,参与训练的参数可用 tf.trainable_variables()提取出来,如: #取出所有参与训练的参数 params=tf.tra ...

  3. python tensorflow pytorch 深度学习 车牌识别

    车牌识别相关资料收集整理 1.License Plate Detection with RetinaFace 链接:https://github.com/zeusees/License-Plate-D ...

  4. DL框架之TensorFlow:深度学习框架TensorFlow Core(低级别TensorFlow API)的简介、安装、使用方法之详细攻略

    DL框架之TensorFlow:TensorFlow Core(低级别TensorFlow API)的简介.安装.使用方法之详细DL框架之TensorFlow:深度学习框架TensorFlow Cor ...

  5. TensorFlow:深度学习框架TensorFlow TensorFlow_GPU的简介、安装、测试之详细攻略

    TensorFlow:深度学习框架TensorFlow & TensorFlow_GPU的简介.安装.测试之详细攻略 目录 TensorFlow的简介 TensorFlow的安装 1.tens ...

  6. DL框架之Tensorflow:深度学习框架Tensorflow的简介、安装、使用方法之详细攻略

    DL框架之Tensorflow:深度学习框架Tensorflow的简介.安装.使用方法之详细攻略 目录 Tensorflow的简介 1.描述 2.TensorFlow的六大特征 3.了解Tensorf ...

  7. [Python人工智能] 六.TensorFlow实现分类学习及MNIST手写体识别案例

    从本专栏开始,作者正式开始研究Python深度学习.神经网络及人工智能相关知识.前一篇文章讲解了Tensorboard可视化的基本用法,并绘制整个神经网络及训练.学习的参数变化情况:本篇文章将通过Te ...

  8. 【Tensorflow】深度学习实战06——Tensorflow实现ResNet

    前言   ResNet(Residual Neural Network)由前微软研究院的 Kaiming He 等4名华人提出(有兴趣的可以点击这里,查看论文原文),通过使用 Residual Blo ...

  9. TensorFlow (RNN)深度学习 双向LSTM(BiLSTM)+CRF 实现 sequence labeling 序列标注问题 源码下载...

    http://blog.csdn.net/scotfield_msn/article/details/60339415 在TensorFlow (RNN)深度学习下 双向LSTM(BiLSTM)+CR ...

  10. 报名 | NVIDIA线下交流会:手把手教你搭建TensorFlow Caffe深度学习服务器

    7月21日(周六)下午14:30,量子位与NVIDIA英伟达开发者社区联合举办线下交流会,拥有丰富一线开发经验的NVIDIA开发者社区经理Ken He,将手把手教你搭建TensorFlow & ...

最新文章

  1. CentOS升级Python2到Python3
  2. c语言约束函数,求解能不能用c或c++语言实现下面的约束条件
  3. 2.8 FSM之Moore和Mealy part1
  4. 最优乘车pascal程序
  5. linux io负载解决方法,看你的linux负载 io值
  6. 外设驱动库开发笔记9:SHT1x系列温湿度传感器驱动
  7. 机器学习笔记八之机器学习系统设计
  8. C# 使用TcpClient 测试网络连接是否正常
  9. 【爬虫】毕设学习记录:python爬取静态网页(只爬取单页)
  10. py导入包异常跳出_14-0-包的介绍及使用
  11. OracleDG主库丢失归档增量同步
  12. WLAN配置实例(一)——二层组网直接转发
  13. Scala快速入门到精通 视频教程 百度云网盘下载地址
  14. java在线生成word文档_java导出word之FreeMarker生成word文档
  15. c语言 矩阵键盘端口定义,3*5矩阵键盘(IO任意定义)
  16. 冷藏温度范围_冷藏和冷冻的温度标准
  17. 各大著名汽车标志图 来历
  18. banner图如何放置
  19. iphone视频照片恢复
  20. durbin watson检验表_DW检验表

热门文章

  1. 原创 | 机器学习数学推导与代码实现30讲.pdf
  2. 什么是事务?事务的特性?
  3. 3238: [Ahoi2013]差异
  4. Android 游戏设计教程:游戏元素和工具
  5. php使用PdfParser搭配tcpdf解析pdf文件
  6. git解决拉取代码本地代码未提交
  7. Cell Genomics封面|北大吴华君组利用空间多组学技术解析肿瘤内空间异质性(附招聘)...
  8. ERP编制物料清单 基础
  9. 浅谈vue项目进阶开发-杂谈1
  10. centos 7升级内核,yum方式升级内核,编译方式升级内核