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大小的...