У меня есть некоторый опыт написания программ машинного обучения на python, но я новичок в TensorFlow и проверяю его. Моя среда разработки - это 64-разрядная виртуальная машина lubuntu 14.04. Я создал среду python 3.5 conda от miniconda и установил TensorFlow 0.12 и ее зависимости. Я начал пытаться запустить пример кода из учебников TensorFlow и столкнулся с этим предупреждением при вызове fit()
в примере boston.py для входных функций: source.
ПРЕДУПРЕЖДЕНИЕ: Тензорный поток: Ранг ввода Тензор (1) должен быть таким же, как output_rank (2) для столбца. Будет пытаться расширить dims. Это очень рекомендуется изменить размер ввода, поскольку это может измениться.
После некоторых поисков в Google я обнаружил, что другие люди столкнулись с этим же предупреждением:
- https://github.com/tensorflow/tensorflow/issues/6184
- https://github.com/tensorflow/tensorflow/issues/5098
- Tensorflow - Ошибки учебного пособия по данным по жилью в Бостоне
Однако они также столкнулись с ошибками, которые не позволяют выполнить выполнение кода. В моем случае код выполняется с указанным выше предупреждением. К сожалению, я не смог найти ни одного ответа в этих ссылках относительно того, что вызвало предупреждение и как устранить предупреждение. Все они сосредоточились на ошибке. Как удалить предупреждение? Или предупреждение безопасно игнорировать?
Ура!
Дополнительная информация, я также вижу следующие предупреждения при запуске вышеупомянутого примера boston.py.
ВНИМАНИЕ: tensorflow: ******************************************* ************ ПРЕДУПРЕЖДЕНИЕ: тензорный поток: формат контрольной точки TensorFlow V1 был осуждается. ПРЕДУПРЕЖДЕНИЕ: Тензорный поток: рассмотрите возможность переключения на более эффективный формат V2: ПРЕДУПРЕЖДЕНИЕ: Тензорный поток:
'Tf.train.Saver(write_version = tf.train.SaverDef.V2)' ПРЕДУПРЕЖДЕНИЕ: Тензорный поток: теперь по умолчанию. ВНИМАНИЕ: tensorflow: ********************************************** *********
и
ПРЕДУПРЕЖДЕНИЕ: tensorflow: От /home/kade/miniconda 3/envs/tensorflow/lib/python3.5/site-packages/tensorflow/contrib/learn/python/learn/estimators/dnn_linear_combined.py:1053 в прогнозе: вызов BaseEstimator.predict(from tensorflow.contrib.learn.python.learn.estimators.estimator) с x является устарел и будет удален после 2016-12-01. Инструкции для Обновление: Оценщик отделен от интерфейса Scikit Learn путем перемещения в отдельный класс SKCompat. Аргументы x, y и batch_size только доступный в классе SKCompat, Estimator будет принимать только input_fn. Пример преобразования: est = Оценщик (...) → est = SKCompat (оценщик (...))
ОБНОВЛЕНИЕ (2016-12-22): Я отслеживал предупреждение для этого файла: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/layers/python/layers/feature_column_ops.py
и этот кодовый блок:
except NotImplementedError:
with variable_scope.variable_scope(
None,
default_name=column.name,
values=columns_to_tensors.values()):
tensor = column._to_dense_tensor(transformed_tensor)
tensor = fc._reshape_real_valued_tensor(tensor, 2, column.name)
variable = [
contrib_variables.model_variable(
name='weight',
shape=[tensor.get_shape()[1], num_outputs],
initializer=init_ops.zeros_initializer(),
trainable=trainable,
collections=weight_collections)
]
predictions = math_ops.matmul(tensor, variable[0], name='matmul')
Обратите внимание на строку: tensor = fc._reshape_real_valued_tensor(tensor, 2, column.name)
Подпись метода: _reshape_real_valued_tensor(input_tensor, output_rank, column_name=None)
Значение 2
жестко запрограммировано как значение output_rank, но пример boston.py проходит в input_tensor
ранга 1. Я продолжу расследование.