Ошибка Tensorflow Python при построении крестиков функций - «Все ключи должны быть либо строкой, либо категориальным столбцом, кроме HashedCategoricalColumn». - PullRequest
0 голосов
/ 05 августа 2020

Я новичок ie в Tensorflow и пытаюсь обучить модель. Модель включает в себя перекрестие двух переменных. Одна из переменных содержит данные, прошедшие «Z-оценку» / нормализованные. Другой - это то, что я бы назвал «фиктивной переменной», которая принимает значение либо 1, либо 0.

Когда я пытаюсь запустить сценарий, я получаю следующее сообщение об ошибке:

ValueError: Unsupported key type. All keys must be either string, or categorical column except HashedCategoricalColumn.

Я запустил dtypes, и переменная one_or_zero_col - это int64, а normalized_col - это float64.

Ниже приведен пример кода, который должен показывать ошибку при запуске.

from __future__ import absolute_import, division, print_function, unicode_literals
import numpy as np
import pandas as pd
import tensorflow as tf

# Create train_df.
train_df = pd.DataFrame({'one_or_zero_col': [1, 0, 0, 1, 1, 0, 0],
                   'normalized_col': [0, 1.25, -0.5, 0, 0, -.15, 0.1]})
print(train_df.dtypes)

# Feature column list
feature_columns = []

# Create feature columns.
one_or_zero_col = tf.feature_column.numeric_column('one_or_zero_col')
normalized_col = tf.feature_column.numeric_column('normalized_col')
feature_columns.append(normalized_col)

# Create a feature cross of normalized_col and one_or_zero_col.
normalized_col_x_one_or_zero_col = tf.feature_column.crossed_column([normalized_col, one_or_zero_col], hash_bucket_size=100)
crossed_feature = tf.feature_column.indicator_column(normalized_col_x_one_or_zero_col)
feature_columns.append(normalized_col_x_one_or_zero_col)

Сообщение об ошибке Вот полное сообщение об ошибке, если оно полезно.

one_or_zero_col      int64
normalized_col     float64
dtype: object
Traceback (most recent call last):
  File "Z:\ML\testML.py", line 19, in <module>
    normalized_col_x_one_or_zero_col = tf.feature_column.crossed_column([normalized_col, one_or_zero_col], hash_bucket_size=100)
  File "Z:\Python\lib\site-packages\tensorflow\python\feature_column\feature_column_v2.py", line 2170, in crossed_column
    raise ValueError(
ValueError: Unsupported key type. All keys must be either string, or categorical column except HashedCategoricalColumn. Given: NumericColumn(key='normalized_col', shape=(1,), default_value=None, dtype=tf.float32, normalizer_fn=None)
[Finished in 2.713s]

Это моя первая попытка использовать перекрестие функций в тензорном потоке , и поэтому я пытаюсь скопировать курс Google Cra sh (и, очевидно, не очень хорошо работает!). Любая помощь / совет о том, почему эта функция не работает, были бы очень признательны. Спасибо!

...