Самый простой способ - использовать вектор сглаженного изображения в качестве входных данных.Вы можете использовать следующий пример кода, который я протестировал с набором данных mnist (модифицирован для 2 класса).Обратите внимание, что текущая реализация тензорного потока BoostedTreesClassifier не поддерживает сокращение для классификатора мультикласса.
import tensorflow as tf
tf.enable_eager_execution()
mnist = tf.keras.datasets.mnist
(x_train, y_train),(x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
for i in range(len(y_train)):
if y_train[i] is not 0:
y_train[i] = 1
for i in range(len(y_test)):
if y_test[i] is not 0:
y_test[i] = 1
NUM_FEATURES = 28*28
train_input_fn = tf.estimator.inputs.numpy_input_fn({'x': x_train.reshape(-1,NUM_FEATURES)}, y_train, batch_size=128, num_epochs=5, shuffle=True)
eval_input_fn = tf.estimator.inputs.numpy_input_fn({'x': x_test.reshape(-1,NUM_FEATURES)}, y_test, batch_size=128, num_epochs=1, shuffle=False)
features = [tf.feature_column.numeric_column("x", shape=(NUM_FEATURES,))]
est = tf.estimator.BoostedTreesClassifier(features, n_batches_per_layer=1)
est.train(train_input_fn)
results = est.evaluate(eval_input_fn)
print('Accuracy : ', results['accuracy'])