softMax交叉熵多分類引數調優之批次大小選擇

2021-09-24 11:38:23 字數 2038 閱讀 5165

import tensorflow as tf

import os

import numpy as np

import numpy as np

os.environ[『tf_cpp_min_log_level』] = 『3』

#輸入隨機種子

myseed = eval(input())

learning_rate = eval(input())

#初始化資料

x_data = np.random.randomstate(myseed).rand(128, 3)

y_data = [[int(x0 + x1 + x2 < 1.5)] for (x0, x1, x2) in x_data]

y_one_hot = tf.one_hot(y_data,2)

y_one_hot = tf.reshape(y_one_hot,shape=[-1,2])

#定義佔位符

x = tf.placeholder(tf.float32,shape=[none,3])

y = tf.placeholder(tf.float32,shape=[none,2])

# 初始化權重和偏執

w = tf.variable(tf.random_normal([3, 2], seed=myseed), name="weight")

b = tf.variable(tf.random_normal([2], seed=myseed), name="bias")

#**函式\

logits = tf.matmul(x,w)+b

#定義代價

cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits_v2(logits=logits,labels = y))

#定義訓練

train = tf.train.gradientdescentoptimizer(learning_rate=learning_rate).minimize(cost)

# # 定義會話

sess = tf.session()

# 將張量y_one_hot 轉為矩陣

y_one_hot = sess.run(y_one_hot)

#訓練週期

training_epochs = 4

#定義批次列表

batch_size = [1,2,4,8,16,32,64,128]

#定義準確率

predict = tf.argmax(logits,1)

corect_predict = tf.equal(predict,tf.argmax(y_one_hot,1))

accuracy = tf.reduce_mean(tf.cast(corect_predict,tf.float32))

acc =

#開始迭代

for batch in batch_size:

print(batch)

#迴圈裡定義多個會話 每次使初始的w和b 值相同

with tf.session() as sess1:

#.sess1.run(tf.global_variables_initializer())

#資料分批

x_split = np.vsplit(x_data,128//batch)

y_split = np.vsplit(y_one_hot,128//batch)

#開始迭代

for epoch in range(training_epochs):

for i in range(128//batch):

sess1.run(train,feed_dict=)

acc_val = sess1.run(accuracy, feed_dict=)

print(acc.sort())

print(batch_size[np.argmax(np.array(acc))],max(acc))

#關閉會話

sess.close()

softmax分類及交叉熵損失

回歸就是通過y wx b得到的。而如果是分類,則輸出層神經元個數即為類別數。例如3類,o i wx b,i 1,2,3,然後將輸出值o做指數變化exp o i 得到的exp o 1 exp o i 即將輸出值變為和為1的概率分布。即對輸出進行指數歸一化處理 分類的損失函式一般用交叉熵損失函式 回歸一...

9 1 mnist softmax 交叉熵多分類器

具體含義不再解釋,這是乙個我們比較常用的乙個多分類器.深度學習的一大優點就是特徵的自動構建,也正是因為該優點,使得分類器層顯得不再那麼重要,在tensorflow的官方原始碼中,softmax是很常見的乙個多分類器.其呼叫也十分的簡單.此處再此單獨拿出來介紹,是為了下一步的學習做準備.使用方法 cr...

softmax和交叉熵

softmax用於多分類過程中,往往加在神經網路的他將多個神經元的輸出,對映到 0,1 區間內,看成概率來解,這些值的累和為1,在選取輸出節點的時候選取概率最大的節點作為我們的 目標,從而進行多分類。softmax 相關求導 當對分類的loss進行改進時,我們通過梯度下降,每次優化乙個step大小的...