2017-08-31 65 views
0

我用我自己的數據集,我想用tflearn做一次深層神經網絡的一列火車測試設置。TFLearn:創建只有使用tflearn

這是我的代碼的一部分。

import tflearn 
from tflearn.data_utils import load_csv 

#Load the CSV File  
X, Y = load_csv('data.csv') 

#Split Data in train and Test with tflearn 

¿我怎麼能這樣做在TFLearn功能拆分X,Y和獲得train_X,test_X,train_Y,test_Y?

我知道如何與numpy的和其他庫做的,但我想用tflearn做。

+0

如果你可以用numpy做,我假設你熟悉切片。 Tensorflow爲張量實現[slicing](https://www.tensorflow.org/versions/r0.12/api_docs/python/array_ops/slicing_and_joining)功能。 – gionni

+0

我不知道這個功能。我想使用TFLearn並使用隨機樣本。那可能嗎? – Marc

+0

您可以使用張力流與tflearn,我認爲這就是爲什麼tflearn不實施切片,但我可能是錯的... – gionni

回答

1

在用於tflearn的tflearn.DNN模型(http://tflearn.org/models/dnn/)的fit方法,你可以選擇validation_set設置爲小於1的浮動,然後該模型將自動在訓練和驗證集分割你的輸入,同時訓練。

import tflearn 
from tflearn.data_utils import load_csv 

#Load the CSV File  
X, Y = load_csv('data.csv') 

# Define some network 
network = ... 

# Training 
model = tflearn.DNN(network, tensorboard_verbose=0) 
model.fit(X, Y, n_epoch=20, validation_set=0.1) # will use 10% for validation 

這將創建驗證而訓練集,這是從測試組不同。如果你只是想一列火車和測試集,我建議考慮看看從sklearn的train_test_split功能,也可以分割你的數據你。

+0

是啊!這是我正在尋找的答案 – Marc

0

從尼基答案是我認爲最簡單的解決方案。

但是,另一種簡單的解決方案是使用sklearn和train_test_split()

from sklearn.model_selection import train_test_split 
data, target = load_raw_data(data_size) # own method, data := ['hello','...'] target := [1 0 -1] label 
X_train, X_test, y_train, y_test = train_test_split(data, target, test_size=0.33, random_state=42) 

還是numpy的版本:

import numpy as np 
texts, target = load_raw_data(data_size) # own method, texts := ['hello','...'] target := [1 0 -1] label 
train_indices = np.random.choice(len(target), round(0.8 * len(target)), replace=False) 
test_indices = np.array(list(set(range(len(target))) - set(train_indices))) 
x_train = [x for ix, x in enumerate(texts) if ix in train_indices] 
x_test = [x for ix, x in enumerate(texts) if ix in test_indices] 
y_train = np.array([x for ix, x in enumerate(target) if ix in train_indices]) 
y_test = np.array([x for ix, x in enumerate(target) if ix in test_indices]) 

所以這是你的選擇,編碼快樂:)