使用Tensorflow和SKCompat进行简单线性回归

时间:2017-08-30 07:59:34

标签: python numpy tensorflow tensorflow-gpu tensor

自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这样的问题不讨论这个部分,或者是旧版本。

0 个答案:

没有答案