質問の研究で週深さ第二週を使用し-softmaxs

  1. 件名の説明:

Tensorflowはソフトマックスマルチ分類を達成使用してください。

  1. トピックス要件:

①必要な依存ライブラリをインポートし、ランダムシードを設定します。(5点)

②定義データセット、ここで:

x_data
= [1、2、1、1]、[2、1、3、2]、[3、1、3、4]、[4、1、5、5]、[1、7,5、 5]、[1、2、
5、6]、[1、6、6、6]、[1、7、7、7]。

y_data
= [0、0、1]、[0、0、1]、[0、0、1]、[0、1、0]、[0、1、0]、[0、1、0] 、[1、0、0]、[1、0、0]]。(5分)

③定義されたプレースホルダ。(5点)

④定義された重みWとバイアスB。(5点)

⑤定義された予測モデル、ソフトマックスを用いた活性化関数。(5点)

コストや損失関数の定義⑥。(5点)

⑦勾配降下の最適化を定義し、学習率は0.01に設定されています。(5点)

計算の精度⑧。(5点)

⑨セッションが作成され、グローバル変数を初期化されます。(5点)

⑩トレーニング反復、ループ反復5000、損失の回500印刷出力値の収束を開始します。(5点)

モデルの11印字精度。(5点)

12×の組所与:[4,1,2,3]、[3,2,4,5]、テストデータの組、及びテスト結果をプリントアウト。(5点)

import tensorflow as tf
import os
os.environ["TF_CPP_MIN_LOG_LEVEL"]="3"

#设置随机种子
tf.set_random_seed(111)

#加载数据
x_data = [[1, 2, 1, 1], [2, 1, 3, 2], [3, 1, 3, 4], [4, 1, 5, 5], [1, 7, 5, 5], [1, 2, 5, 6], [1, 6, 6, 6], [1, 7, 7, 7]]
y_data = [[0, 0, 1], [0, 0, 1], [0, 0, 1], [0, 1, 0], [0, 1, 0], [0, 1, 0],[1, 0, 0], [1, 0, 0]]

#定义占位符
x = tf.placeholder(tf.float32,shape=[None,4])
y = tf.placeholder(tf.int64,shape=[None,3])

#初始化权重和偏执
w = tf.Variable(tf.random_normal([4,3]),name="w")
b = tf.Variable(tf.random_normal([3]),name="b")

#预测模型
logits = tf.matmul(x,w)+b
hypothesis = tf.nn.softmax(logits)

#定义代价
cost = tf.nn.softmax_cross_entropy_with_logits(logits=logits,labels=y)

#优化器
train = tf.train.GradientDescentOptimizer(learning_rate=0.01).minimize(cost)

#计算准确率
predict = tf.argmax(hypothesis,1)
correct_pre = tf.equal(predict,tf.argmax(y,1))
accuracy = tf.reduce_mean(tf.cast(correct_pre,tf.float32))

#创建会话
sess = tf.Session()
sess.run(tf.global_variables_initializer())
#开始迭代
for step in range(5000):
    cost_val,_ = sess.run([cost,train],feed_dict={x:x_data,y:y_data})
    if step %500 ==0:
        print(step,cost_val)

#打印精确率
print("Accuracy:",sess.run(accuracy,feed_dict={x:x_data,y:y_data}))

#y预测
print(sess.run(predict,feed_dict={x:[[4,1,2,3], [3,2,4,5]]}))
#关闭会话
sess.close()

おすすめ

転載: blog.csdn.net/weixin_43696515/article/details/92617244