import numpy as np
import pandas as pd
import tensorflow as tf
import math
from keras.utils import to_categorical
import matplotlib.pyplot as plt
data = np.loadtxt('lda降维样本.txt')
data_x = data[:,0:3]
data_y = data[:,3]
data_y = to_categorical(data_y)
data_y = data_y[:,1:]
def add_layer(inputs, in_size, out_size, activation_function=None):
weights = tf.Variable(tf.random_normal([in_size, out_size]))
biases = tf.Variable(tf.zeros([1, out_size]) + 0.1)
wx_plus_b = tf.matmul(inputs, weights) + biases
if activation_function is None:
outputs = wx_plus_b
else:
outputs = activation_function(wx_plus_b)
return outputs
xs = tf.placeholder(tf.float32, [None, 3])
ys = tf.placeholder(tf.float32, [None, 6])
prediction = add_layer(xs, 3, 6, None)
loss = tf.nn.softmax_cross_entropy_with_logits(labels=ys, logits = prediction)
train = tf.train.GradientDescentOptimizer(0.5).minimize(loss)
init = tf.global_variables_initializer()
sess = tf.Session()
sess.run(init)
accuracy1 = []
for i in range(1000):
sess.run(train, feed_dict={xs: data_x, ys: data_y})
result_train = sess.run(prediction, feed_dict={xs: data_x, ys: data_y})
prediction_1 = sess.run(tf.nn.softmax(result_train))
c = ((prediction_1 == data_y)+0)
sum_ = sum(map(sum,c))
accuracy = 1.0*sum_/(13910*6)
if (i+1)%100 == 0:
print(accuracy)
# plt.ylim(0,1)
# plt.plot(accuracy1)
# plt.show()
bp_softmax
最新推荐文章于 2023-03-08 14:24:01 发布