我只是Tensorflow的初学者。
我正在尝试运行一个分类模型,该模型接受多个numpy数组作为输入,并将它们分类到两个可能的类别中。但我无法使其运行。我查看了教程和其他讨论,但没有得到任何启发。有人知道如何创建一个接受多个参数数组的模型吗?
feedmag、feedlat、feedtime和feedlong都是numpy数组
这是错误信息:
label_ids format(labels.dtype))
ValueError: Labels dtype should be integer. Instead got .
这是我的代码。
for i in range (0,34): labels = np.append(labels,int(1));for i in range (0,34): labels = np.append(labels,int(2)); feature = {'magnitude': feedmag, 'time': feedtime, 'latitude': feedlat, 'longitude': feedlong} my_feature_columns = [] for key in feature.keys(): my_feature_columns.append(tf.feature_column.numeric_column(key=key))classifier = tf.estimator.DNNClassifier( feature_columns=my_feature_columns, # Two hidden layers of 10 nodes each. hidden_units=[10, 10], n_classes = 4; # The model must choose between 3 classes. optimizer=tf.train.ProximalAdagradOptimizer( learning_rate=0.1, l1_regularization_strength=0.001))with tf.Session() as session: train_input_fn = tf.estimator.inputs.numpy_input_fn( feature, labels, num_epochs=1, shuffle=True, batch_size=33) test_input_fn = tf.estimator.inputs.numpy_input_fn( feature, labels, num_epochs=1, shuffle=False, batch_size=33)classifier.train(input_fn = lambda: train_input_fn)print('starting')print(classifier.evaluate( input_fn=test_input_fn, steps = 33))print("ending")print(tf.VERSION)
回答:
尝试更改这一行:
classifier.train(input_fn = lambda: train_input_fn)
改为…
classifier.train(input_fn=train_input_fn)
解释:train_input_fn
将numpy数组转换为张量(这是tensorflow所期望的),而lambda: train_input_fn
是一个返回train_input_fn
函数的函数。