我有一些在python中编写机器学习程序的经验,但我是TensorFlow的新手并正在检查它。我的开发环境是一个lubuntu 14.04 64位虚拟机。我从miniconda创建了一个python 3.5 conda环境并安装了TensorFlow 0.12及其依赖项。我开始尝试从TensorFlow的教程中运行一些示例代码,并在调用时遇到此警告 fit()
在输入函数的boston.py示例中: 资源。
警告:tensorflow:输入的等级Tensor(1)应该与 列的output_rank(2)。将尝试扩大dims。这是非常高的 建议您调整输入的大小,因为此行为可能会更改。
在谷歌搜索后,我发现其他人遇到了同样的警告:
- https://github.com/tensorflow/tensorflow/issues/6184
- https://github.com/tensorflow/tensorflow/issues/5098
- Tensorflow - 波士顿住房数据教程错误
但是,他们也遇到了阻止代码执行完成的错误。在我的例子中,代码执行上面的警告。不幸的是,我在这些链接中找不到关于导致警告的原因以及如何修复警告的单一答案。他们都专注于错误。如何删除警告?或者警告可以安全忽略吗?
干杯!
额外信息,我在运行上述boston.py示例时也会看到以下警告。
警告:tensorflow:************ ********* 警告:tensorflow:TensorFlow的V1检查点格式已经存在 弃用。警告:tensorflow:考虑切换到更多 高效的V2格式:警告:张量流:
'tf.train.Saver(write_version = tf.train.SaverDef.V2)' 警告:tensorflow:默认情况下已启用。 警告:tensorflow:************ *********
和
警告:tensorflow:从 /home/kade/miniconda3/envs/tensorflow/lib/python3.5/site-packages/tensorflow/contrib/learn/python/learn/estimators/dnn_linear_combined.py:1053 在预测中:调用BaseEstimator.predict(来自 tensorflow.contrib.learn.python.learn.estimators.estimator)x是 已弃用,将在2016-12-01之后删除。说明 更新:Estimator通过移动与Scikit Learn界面分离 分成SKCompat类。参数x,y和batch_size仅为 在SKCompat类中,Estimator只接受input_fn。 转换示例:est = Estimator(...) - > 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.我会继续调查。