Split tensor into training and test sets
As elham mentioned, you can use scikit-learn to do this easily. scikit-learn is an open source library for machine learning. There are tons of tools for data preparation including the model_selection
module, which handles comparing, validating and choosing parameters.
The model_selection.train_test_split()
method is specifically designed to split your data into train and test sets randomly and by percentage.
X_train, X_test, y_train, y_test = train_test_split(features,
labels,
test_size=0.33,
random_state=42)
test_size
is the percentage to reserve for testing and random_state
is to seed the random sampling.
I typically use this to provide train and validation data sets, and keep true test data separately. You could just run train_test_split
twice to do this as well. I.e. split the data into (Train + Validation) and Test, then split Train + Validation into two separate tensors.
import sklearn.model_selection as sk
X_train, X_test, y_train, y_test =
sk.train_test_split(features,labels,test_size=0.33, random_state = 42)
Something like the following should work:
tf.split_v(tf.random_shuffle(...
Edit: For tensorflow>0.12 This should now be called as tf.split(tf.random.shuffle(...
Reference
See docs for tf.split and for tf.random.shuffle for examples.