迭代完成逻辑回归模型
来源:互联网 发布:php手机短信验证 编辑:程序博客网 时间:2024/06/05 09:42
import numpy as npimport tensorflow as tfimport matplotlib.pyplot as pltimport input_data#读取mnist数据集mnist=input_data.read_data_sets('data/',one_hot=True)trainimg=mnist.train.images#mnist的训练数据送给trainimgtrainlabel=mnist.train.labels#mnist的训练的label赋值给trainlabletestimg=mnist.test.images#mnist的训数据送给testimgtestlabel=mnist.test.labels#mnist的测试label送给testlabelprint("MNIST loaded")print(trainimg.shape)print(trainlabel.shape)print(testimg.shape)print(testlabel.shape)print(trainlabel[0])x=tf.placeholder("float",[None,784]) #定义一个占位符y=tf.placeholder("float",[None,10])W=tf.Variable(tf.zeros([784,10]))#初始化W和bb=tf.Variable(tf.zeros([10]))#softmax逻辑回归模型的扩展actv=tf.nn.softmax(tf.matmul(x,W)+b)#对所有的样本求均值 loss是平均的losscost=tf.reduce_mean(-tf.reduce_sum(y*tf.log(actv),reduction_indices=1))learning_rate=0.01optm=tf.train.GradientDescentOptimizer(learning_rate).minimize(cost)#########上面是搭的模型######################进入测试阶段#################prediction#tf.equal(A, B)是对比这两个矩阵或者向量的相等的元素,如果是相等的那就返回True,反正返回False,# 返回的值的矩阵维度和A是一样的#tf.argmax(vector, 1):返回的是vector中的最大值的索引号,如果vector是一个向量,那就返回一个值,# 如果是一个矩阵,那就返回一个向量,# 这个向量的每一个维度都是相对应矩阵行的最大值元素的索引号。pred=tf.equal(tf.argmax(actv,1),tf.argmax(y,1))#accuray#tf.reduce_mean(x) ==> 2.5 #如果不指定第二个参数,那么就在所有的元素中取平均值#tf.reduce_mean(x, 0) ==> [2., 3.] #指定第二个参数为0,则第一维的元素取平均值,即每一列求平均值#tf.reduce_mean(x, 1) ==> [1.5, 3.5] #指定第二个参数为1,则第二维的元素取平均值,即每一行求平均值# cast(x, dtype, name=None)# 将x的数据格式转化成dtype.例如,原来x的数据格式是bool,# 那么将其转化成float以后,就能够将其转化成0和1的序列。反之也可以accr=tf.reduce_mean(tf.cast(pred,"float"))init=tf.global_variables_initializer()sess=tf.InteractiveSession()# tf.InteractiveSession():它能让你在运行图的时候,插入一些计算图,# 这些计算图是由某些操作(operations)构成的。这对于工作在交互式环境中的人们来说非常便利,比如使用IPython。# tf.Session():需要在启动session之前构建整个计算图,然后启动该计算图。# 意思就是在我们使用tf.InteractiveSession()来构建会话的时候,# 我们可以先构建一个session然后再定义操作(operation),# 如果我们使用tf.Session()来构建会话我们需要在会话构建之前定义好全部的操作(operation)然后再构建会话。arr=np.array([[31,23,4,24,27,34], [18,3,25,0,6,35], [28,14,33,22,20,8], [13,30,21,19,7,9], [16,1,26,32,2,29], [17,12,5,11,10,15] ]) #创建数组tf.argmax(arr,1).eval()training_epochs=50batch_size=100display_step=5sess=tf.Session()sess.run(init)for epoch in range(training_epochs): avg_cost=0. num_batch=int(mnist.train.num_examples/batch_size) for i in range(num_batch): batch_xs,batch_ys=mnist.train.next_batch(batch_size) sess.run(optm,feed_dict={x:batch_xs,y:batch_ys}) feeds={x:batch_xs,y:batch_ys} avg_cost+=sess.run(cost,feed_dict=feeds)/num_batch if epoch % display_step==0: feeds_train={x:batch_xs,y:batch_ys} feeds_test={x:mnist.test.images,y:mnist.test.labels} train_acc=sess.run(accr,feed_dict=feeds_train) test_acc=sess.run(accr,feed_dict=feeds_test) print("Epoch:%03d/%03d cost:%.9f train_acc:%.3f,test_acc:%.3f" %(epoch,training_epochs,avg_cost,train_acc,test_acc))print("Done")
阅读全文
0 0
- 迭代完成逻辑回归模型
- 逻辑斯蒂回归3 -- 最大熵模型之改进的迭代尺度法(IIS)
- 逻辑回归-参数迭代公式推导
- 逻辑回归迭代公式推导
- 回归模型-逻辑回归
- 逻辑回归模型
- 逻辑回归模型
- 逻辑回归模型
- 复习:逻辑回归模型
- 机器学习-逻辑回归-参数迭代公式推导
- 机器学习-逻辑回归-参数迭代公式推导
- 转载-机器学习-逻辑回归-参数迭代公式推导
- 机器学习-逻辑回归-参数迭代公式推导
- 逻辑斯蒂回归模型
- 逻辑回归模型预测ctr
- 逻辑回归模型和算法
- 逻辑斯蒂回归模型
- Tensorflow实现逻辑回归模型
- 一道sql面试题
- [ERR] Node 192.168.1.77:7000 is not empty. Either the node already knows other nodes (check with CLU
- Spring-data-redis
- 循环结构进阶(多重循环)
- [转载]基于 Spring Boot、Spring Cloud、Spring Oauth2 和 Spring Cloud Netflix 等框架构建的微服务项目
- 迭代完成逻辑回归模型
- 【Scikit-Learn 中文文档】线性和二次判别分析
- Spring4 + Hibernate5详细maven构建
- Tensorflow一些常用基本概念与函数
- mysql使用between and处理时间区间不包括右边界问题
- 旋转的华尔兹(转载)
- HDU 1728 逃离迷宫(BFS+转弯次数+转弯方向)
- 设计模式之观察者模式(Observer)
- 定时器每秒生成1000条数据,插入数据库表名为当天日期的表