我的數(shù)據(jù):
6.1101,17.592
5.5277,9.1302
8.5186,13.662
7.0032,11.854
5.8598,6.8233
8.3829,11.886
7.4764,4.3483
若格式為txt,則先轉(zhuǎn)為Csv格式:
# coding=utf-8
import csv
#要保存后csv格式的文件名
file_name_string="file.csv"
with open(file_name_string, 'wb') as csvfile:
#編碼風(fēng)格,默認(rèn)為excel方式,也就是逗號(hào)(,)分隔
spamwriter = csv.writer(csvfile, dialect='excel')
# 讀取txt文件,每行按逗號(hào)分割提取數(shù)據(jù)
with open('ex1data1.txt', 'rb') as file_txt:
for line in file_txt:
line_datas= line.strip('\n').split(',')
spamwriter.writerow(line_datas)
得到file.csv文件,其中ex1data1.txt為原數(shù)據(jù),file.csv為轉(zhuǎn)化后的csv數(shù)據(jù):
image.png
讀取Csv格式數(shù)據(jù):
# coding=utf-8
import tensorflow as tf
import os
import csv
#要保存后csv格式的文件名
file_name_string="file.csv"
filename_queue = tf.train.string_input_producer([file_name_string])
#每次一行
reader = tf.TextLineReader()
key,value = reader.read(filename_queue)
record_defaults = [[1.0], [1.0]] # 這里的數(shù)據(jù)類型決定了讀取的數(shù)據(jù)類型,而且必須是list形式
col1, col2 = tf.decode_csv(value, record_defaults=record_defaults) # 解析出的每一個(gè)屬性都是rank為0的標(biāo)量
with tf.Session() as sess:
#線程協(xié)調(diào)器
coord = tf.train.Coordinator()
#啟動(dòng)線程
threads = tf.train.start_queue_runners(coord=coord)
is_second_read=0
line1_name='%s:1' % file_name_string
print line1_name
while True:
#x_第一個(gè)數(shù)據(jù),y_第二個(gè)數(shù)據(jù),dline_key中保存當(dāng)前讀取的行號(hào)
x_, y_,line_key = sess.run([col1, col2,key])
#若當(dāng)前l(fā)ine_key第二次等于第一行的key(即line1_name)則說明讀取完,跳出循環(huán)
if is_second_read==0 and line_key==line1_name:
is_second_read=1
elif is_second_read==1 and line_key==line1_name:
break
print (x_,y_,line_key)
#循環(huán)結(jié)束后,請(qǐng)求關(guān)閉所有線程
coord.request_stop()
coord.join(threads)
sess.close()
輸出結(jié)果:
image.png
官網(wǎng)參考:地址