我刚刚开始使用tensorflow,但是我无法正确地导入数据以用于DNNClassifier。我实际上有两个hdf5格式的文件,我是用pandas导入的。特征向量具有维度100,并且特征可以属于5个类别。例如,如果我使用以下代码:
import pandas as pd
import numpy as np
import tensorflow as tf
#Data
train = pd.read_hdf("train.h5", "train")
test = pd.read_hdf("test.h5", "test")
Y=train.iloc[0:,0]
X=train.iloc[0:,1:]
X_t=test.iloc[0:,0:]
Y=np.array(Y.values).astype('int')
X=np.array(X.values).astype('double')
X_t=np.array(X_t.values).astype('double')
#Train
feature_columns = [tf.contrib.layers.real_valued_column("", dimension=100)]
classifier = tf.contrib.learn.DNNClassifier(feature_columns=feature_columns,
hidden_units=[10, 20],
n_classes=5,
model_dir="/tmp/model")
# Define the training inputs
def get_train_inputs():
x = tf.constant(X)
y = tf.constant(Y)
return x, y
#fit
classifier.fit(input_fn=get_train_inputs, steps=1000)
predictions = list(classifier.predict(input_fn=get_train_inputs))
print(predictions)我收到错误: InvalidArgumentError (参见上面的回溯):shape_and_slice规范100,10中的形状与检查点中存储的形状不匹配:1,10[节点:保存/恢复V2_2= RestoreV2dtypes=[DT_FLOAT], _device="/job:localhost/replica:0/task:0/cpu:0"]]
我不明白为什么会这样?我应该如何转换我的数据以应用于此分类器?
发布于 2017-04-21 22:40:20
我的解决方案是:
将您的模型“/tmp/model_dir=”更改为
model_dir="/tmp/model-1注意:-它不需要是model-1,用任何有效的名称替换,比如
Model_dir=“/tmp/ ..something -像这样的模型..
https://stackoverflow.com/questions/43496965
复制相似问题