TF cookbook c2建立分類器

2021-09-26 10:11:15 字數 3383 閱讀 1830

import matplotlib.pyplot as plt

import numpy as np

from sklearn import datasets

import tensorflow as tf

sess=tf.session()

iris=datasets.load_iris()

# print(iris.target)

# print(iris.keys,iris.values,iris.items)

# python獲取物件成員資訊 :dir(obj)

# print(dir(iris))

# ['descr', 'data', 'feature_names', 'filename', 'target', 'target_names']

# 根據class目標是否為山鳶尾將其轉換成1或者0,iris資料集將山鳶尾標記為0,將其從0置為1,同時將其它物種標記為0

# 訓練只使用花瓣長度與花瓣寬度,這兩個特徵在第三列和第四列

binary_target=np.array([1. if x==0 else 0. for x in iris.target])

# print(binary_target)

iris_2d=np.array([[x[2],x[3]] for x in iris.data])

# print(iris_2d.size)

# 各150組資料,共300,150*2

# print(type(iris_2d))# print(iris_2d.shape) (150, 2)

# 宣告批量訓練大小、佔位符及模型變數

batch_size=200

x1_data=tf.placeholder(shape=[none,1],dtype=tf.float32)

x2_data=tf.placeholder(shape=[none,1],dtype=tf.float32)

y_target=tf.placeholder(shape=[none,1],dtype=tf.float32)

a=tf.variable(tf.random_normal(shape=[1,1]))

b=tf.variable(tf.random_normal(shape=[1,1]))

# 定義線性模型 線性模型為:x2=x1*a+b,將公式x2-x1*a-b傳入sigmoid函式,**結果1或者0

my_mult=tf.matmul(x1_data,a)

my_add=tf.add(my_mult,b)

my_output=tf.subtract(x2_data,my_add)

# 使用sigmoid交叉熵損失函式sigmoid_cross_entropy_with_logits()

xentropy=tf.nn.sigmoid_cross_entropy_with_logits(labels = y_target, logits = my_output)

# 使用優化器,最小化交叉熵損失,選擇學習率為0.05

my_opt=tf.train.gradientdescentoptimizer(0.05)

train_step=my_opt.minimize(xentropy)

# 初始化變數

init=tf.global_variables_initializer()

sess.run(init)

# 迭代執行1000訓練線性模型,傳入三種資料:花瓣長度,花瓣寬度,目標變數,每200次迭代列印出變數值

動態建立2

在modern c design中提到了一種使用工廠來管理所有類別的解決方案,類別都儲存在乙個map裡,每個具體的產品類向該工廠註冊。建立物件時通過呼叫createobject int itypeid 就可以得到相應的類別。同前一種比起來,這種方法更容易理解。首先需要乙個工廠類,它應該是乙個sing...

mysql 建立分割槽索引嗎 mysql建立分割槽索引

該樓層疑似違規已被系統摺疊 隱藏此樓檢視此樓 mysql建立分割槽索引 一 分割槽表 把所有的資料放在乙個表中,但是物理儲存資料會根據一定規則存放到不同的檔案中 二 什麼時候使用分割槽表?資料比較大時候,數以億記或者數以tb記的資料,如果使用索引在空間和維護消耗巨大,甚至索引沒有效果了.例子 檢視是...

2 jenkins git建立建立及專案構建

管理系統 管理外掛程式 可選外掛程式 然後找到 git plugin 由於我這裡已經安裝了,所以可選框是灰色的 認證方式管理,也可以在專案下配置 需要注意的是,這裡私鑰對應的公鑰應該在git倉庫相應的使用者的ssh公鑰認證檔案 ssh authorized 裡已經新增過,且這個使用者對git倉庫有讀...