欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

TensorFlow實(shí)現(xiàn)Logistic回歸

 更新時(shí)間:2018年09月07日 16:19:57   作者:不凡De老五  
這篇文章主要為大家詳細(xì)介紹了TensorFlow實(shí)現(xiàn)Logistic回歸的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了TensorFlow實(shí)現(xiàn)Logistic回歸的具體代碼,供大家參考,具體內(nèi)容如下

1.導(dǎo)入模塊

import numpy as np
import pandas as pd
from pandas import Series,DataFrame

from matplotlib import pyplot as plt
%matplotlib inline

#導(dǎo)入tensorflow
import tensorflow as tf

#導(dǎo)入MNIST(手寫(xiě)數(shù)字?jǐn)?shù)據(jù)集)
from tensorflow.examples.tutorials.mnist import input_data

2.獲取訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù)

import ssl 
ssl._create_default_https_context = ssl._create_unverified_context

mnist = input_data.read_data_sets('./TensorFlow',one_hot=True)

test = mnist.test
test_images = test.images

train = mnist.train
images = train.images


3.模擬線性方程

#創(chuàng)建占矩陣位符X,Y
X = tf.placeholder(tf.float32,shape=[None,784])
Y = tf.placeholder(tf.float32,shape=[None,10])

#隨機(jī)生成斜率W和截距b
W = tf.Variable(tf.zeros([784,10]))
b = tf.Variable(tf.zeros([10]))

#根據(jù)模擬線性方程得出預(yù)測(cè)值
y_pre = tf.matmul(X,W)+b

#將預(yù)測(cè)值結(jié)果概率化
y_pre_r = tf.nn.softmax(y_pre)

4.構(gòu)造損失函數(shù)

# -y*tf.log(y_pre_r) --->-Pi*log(Pi)  信息熵公式

cost = tf.reduce_mean(-tf.reduce_sum(Y*tf.log(y_pre_r),axis=1))

5.實(shí)現(xiàn)梯度下降,獲取最小損失函數(shù)

#learning_rate:學(xué)習(xí)率,是進(jìn)行訓(xùn)練時(shí)在最陡的梯度方向上所采取的「步」長(zhǎng);
learning_rate = 0.01
optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost)

6.TensorFlow初始化,并進(jìn)行訓(xùn)練

#定義相關(guān)參數(shù)

#訓(xùn)練循環(huán)次數(shù)
training_epochs = 25
#batch 一批,每次訓(xùn)練給算法10個(gè)數(shù)據(jù)
batch_size = 10
#每隔5次,打印輸出運(yùn)算的結(jié)果
display_step = 5


#預(yù)定義初始化
init = tf.global_variables_initializer()

#開(kāi)始訓(xùn)練
with tf.Session() as sess:
  #初始化
  sess.run(init)
  #循環(huán)訓(xùn)練次數(shù)
  for epoch in range(training_epochs):
    avg_cost = 0.
    #總訓(xùn)練批次total_batch =訓(xùn)練總樣本量/每批次樣本數(shù)量
    total_batch = int(train.num_examples/batch_size)
    for i in range(total_batch):
      #每次取出100個(gè)數(shù)據(jù)作為訓(xùn)練數(shù)據(jù)
      batch_xs,batch_ys = mnist.train.next_batch(batch_size)
      _, c = sess.run([optimizer,cost],feed_dict={X:batch_xs,Y:batch_ys})
      avg_cost +=c/total_batch
    if(epoch+1)%display_step == 0:
      print(batch_xs.shape,batch_ys.shape)
      print('epoch:','%04d'%(epoch+1),'cost=','{:.9f}'.format(avg_cost))
  print('Optimization Finished!')

  #7.評(píng)估效果
  # Test model
  correct_prediction = tf.equal(tf.argmax(y_pre_r,1),tf.argmax(Y,1))
  # Calculate accuracy for 3000 examples
  # tf.cast類型轉(zhuǎn)換
  accuracy = tf.reduce_mean(tf.cast(correct_prediction,tf.float32))
  print("Accuracy:",accuracy.eval({X: mnist.test.images[:3000], Y: mnist.test.labels[:3000]}))

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論