Tensorflow: как создать feature_columns для ввода матрицы - PullRequest
0 голосов
/ 29 июня 2018

Я использую tenorflow 1.8.0, python 3.6.5. Данные представляют собой набор данных радужной оболочки. Вот код:

import pandas as pd
import numpy as np
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
import tensorflow as tf

X = iris['data']
y = iris['target']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

input_train=tf.estimator.inputs.numpy_input_fn(x=X_train,
            y=y_train, num_epochs=100, shuffle=False)
classifier_model = tf.estimator.DNNClassifier(hidden_units=[10, 
                  20, 10], n_classes=3, feature_columns=??)

Вот моя проблема, как мне настроить feature_columns для матрицы с пустым фрагментом?

Если я преобразую X и y в pandas.DataFrame, я могу использовать следующий код для feature_columns, и он работает в модели DNNClassifier.

features = X.columns
feature_columns = [tf.feature_column.numeric_column(key=key) for key in features]

1 Ответ

0 голосов
/ 23 декабря 2018

Вы можете обернуть свой numy ndarray в словарь и передать его в метод numpy_input_fn в качестве ввода x, а затем использовать ключ в этом словаре для определения вашего feature_column. Также обратите внимание, что, поскольку у всех данных в вашем X_train есть 4 измерения, вам нужно указать параметр shape при определении tf.feature_column.numeric_column. Вот полный код:

import pandas as pd
import numpy as np
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
import tensorflow as tf

iris = load_iris()

X = iris['data']
y = iris['target']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

input_train = tf.estimator.inputs.numpy_input_fn(
                  x = {'x': X_train},
                  y = y_train,
                  num_epochs = 100,
                  shuffle = False)

feature_columns = [tf.feature_column.numeric_column(key='x', shape=(X_train.shape[1],))]

classifier_model = tf.estimator.DNNClassifier(
                       hidden_units=[10, 20, 10],
                       n_classes=3,
                       feature_columns=feature_columns)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...