1. 程式人生 > >svm格式資料轉換為tensorflow資料格式

svm格式資料轉換為tensorflow資料格式

#!/usr/bin/env python

import tensorflow as tf
import numpy as np
batch_size = 100
w1 = tf.Variable(tf.random_normal([5,8],stddev=1,seed=1)) #第一層權重初始化,方差為1
w2 = tf.Variable(tf.random_normal([8,1],stddev=1,seed=1))
x = tf.placeholder(tf.float32,shape=(None, 5),name="x-input")
y_ = tf.placeholder(tf.float32,shape=(None, 1),name="y-input")
a = tf.matmul(x,w1)
y = tf.matmul(a,w2)
cross_entropy = -tf.reduce_mean(y * tf.log(tf.clip_by_value(y, 1e-10, 1.0)))
train_step = tf.train.AdamOptimizer(0.001).minimize(cross_entropy)

def create_file(path):
write = tf.python_io.TFRecordWriter('train.tfrecords')
with open(path,'r') as file:
lines = file.readlines()
# print lines.__len__()
count = 0
data = []
featuresList = []
labelList = []
for line in lines:
word = line.split(" ")
features = []
label=[]
for i in range(1, len(word)):
if i < (len(word) - 1):
features.append(word[i].split(":")[1])
else:
features.append(word[len(word) - 1].split(":")[1].split("\n")[0])
label.append(int(word[0]))
count = count + 1
print(count)
featuresList.append(features)
labelList.append(label)
data.append(featuresList)
data.append(labelList)
write.close()
return data[0],data[1]

data = create_file("train01.txt")
test = create_file("train01.txt")
d = tf.convert_to_tensor(data[0])#訓練集
d1 = tf.convert_to_tensor(data[1])
dtest = tf.convert_to_tensor(test[0]) #測試集
d1test = tf.convert_to_tensor(test[1])
#init = tf.initialize_all_variables()
init =tf.global_variables_initializer()
sess = tf.Session()
sess.run(init)
for i in range(10):
print("itN:",i)
dd = sess.run(d)
print(dd)
dd1 = sess.run(d1)
ddtest = sess.run(dtest)
dd1test = sess.run(d1test)
sess.run(train_step, feed_dict={x: dd,y_: dd1})
correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1))

print(correct_prediction)
accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float"))
print(sess.run(accuracy, feed_dict={x: dd, y_: dd1}))

print(sess.run(accuracy, feed_dict={x: ddtest, y_: dd1test}))