我正在使用我自己的数据集,我想要做一个使用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。
发布于 2017-12-21 08:07:21
在tflearn ( fit )中的tflearn.DNN模型的http://tflearn.org/models/dnn/方法中,您可以将选项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中的拆分函数,它也可以为您拆分数据。
发布于 2018-01-23 14:06:30
尼基的答案是我认为最简单的解决方案。
但是,另一个简单的解决方案是使用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)或者是矮胖的版本:
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])所以这是你的选择,快乐的编码:)
https://stackoverflow.com/questions/45979790
复制相似问题