2017-08-31 49 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]) 

所以这是你的选择,编码快乐:)