自Tensorflow-GPU 1.3更新以来,估算器已被弃用,现在已成为SKCompat类的wrapepd。
包装工作,但是我不知道如何使用fit函数与估算器拟合函数进行比较。
fit函数应该将两个x
个参数赋值为一个y
值。因此,x
都是Tensor Rank 0。
一方面,我试图将它解析为fit参数为numpy数组,如下所示:
with tf.device('/gpu:0'): #with tf.device('/cpu:0'):
#Read the data
x1_d,x2_d, y_d=readData()
features = [tf.contrib.layers.real_valued_column("x1",dimension=1),\
tf.contrib.layers.real_valued_column("x2",dimension=1)]
cl = SKCompat( tf.contrib.learn.LinearRegressor(feature_columns=features,\
model_dir='./linear_estimator_2'))
cl.fit(x={"x1":x1_d,"x2":x2_d},y=y_d)
这给了我错误
AttributeError:'numpy.ndarray'对象没有属性'items'
所以我试着把它转换成这样的张量:
x1_t = tf.convert_to_tensor(x1_d)
x2_t = tf.convert_to_tensor(x2_d)
y_t = tf.convert_to_tensor(y_d)
cl.fit(x={"x1":x1_t,"x2":x2_t},y=y_t)
这给了我错误
ValueError:输入不能是张量。请提供input_fn
但是,如果我像这样创建input_fn:
input_fn_train = tf.contrib.learn.io.numpy_input_fn(
{"x1":x1_d,"x2":x2_d}, y_d, num_epochs=1000)
cl.fit(input_fn_train)
然后我当然得到错误,y参数丢失了。
那么如何设置fit function
SKCompat
的数据?
像Tensorflow Deprecated Warning这样的问题不讨论这个部分,或者是旧版本。