Я новичок в Tensorflow и меня очень смущают модели, которые он предоставляет.Я хотел бы знать, есть ли какая-либо модель Tensorflow, которая может иметь метки, НЕ имеющие двоичный тип данных или строку
В этом примере (https://github.com/tensorflow/models/tree/master/official/wide_deep/wide_deep.py) - это та, над которой я работаю.
Я пытаюсь обучить модель, которая имеет 4 входных объекта и 6 выходных меток, все с типом float64. Модели (либо DNNLinearCombinedClassifier, либо DNNLinearCombinedRegressor), кажется, ищут метки с двоичным или строковым значением, поскольку эта ошибка показывает:
Кто-нибудь знает какие-либо другие модели, которые я могу использовать, чтобы иметь несколько меток с плавающим типом данных? Или я все равно могу обойти это?
Часть моего кодаздесь:
_CSV_FEATURE_COLUMNS = ['vgs', 'vbs', 'vds', 'current']
_CSV_LABEL_COLUMNS = ['plo_tox', 'plo_dxl', 'plo_dxw', 'parl1', 'parl2', 'random_fn']
_CSV_COLUMN_DEFAULTS = [[0.0000], [0.0000], [0.0000], [0.0000], [0.0000],
[0.0000], [0.0000], [0.0000], [0.0000], [0.0000]]
def input_fn(data_file, num_epochs, shuffle, batch_size):
"""Generate an input function for the Estimator."""
assert tf.gfile.Exists(data_file), (
'%s not found. Please make sure you have run data_download.py and '
'set the --data_dir argument to the correct path.' % data_file)
def parse_csv(value):
columns = tf.decode_csv(value, record_defaults=_CSV_COLUMN_DEFAULTS)
feature_columns = columns[6:10]
features = dict(zip(_CSV_FEATURE_COLUMNS, feature_columns))
label_columns = columns[0:6]
labels = dict(zip(_CSV_LABEL_COLUMNS, label_columns))
return features, labels
dataset = tf.data.TextLineDataset(data_file)
dataset = dataset.map(parse_csv, num_parallel_calls=5)
dataset = dataset.repeat(num_epochs)
dataset = dataset.batch(batch_size)
return dataset
def main(unused_argv):
# Clean up the model directory if present
shutil.rmtree(FLAGS.model_dir, ignore_errors=True)
model = build_estimator(FLAGS.model_dir, FLAGS.model_type)
train_file = "Tensorflow_training_data.csv"
test_file = "Tensorflow_testing_data.csv"
train_hooks = hooks_helper.get_train_hooks(
FLAGS.hooks, batch_size=FLAGS.batch_size,
tensors_to_log={'average_loss': 'head/truediv',
'loss': 'head/weighted_loss/Sum'})
# Train and evaluate the model every `FLAGS.epochs_between_evals` epochs.
for n in range(FLAGS.train_epochs // FLAGS.epochs_between_evals):
model.train(
input_fn=lambda: input_fn(train_file, FLAGS.epochs_between_evals, True,
FLAGS.batch_size),
hooks=train_hooks)
results = model.evaluate(input_fn=lambda: input_fn(
test_file, 1, False, FLAGS.batch_size))
# Display evaluation metrics
print('Results at epoch', (n + 1) * FLAGS.epochs_between_evals)
print('-' * 60)
for key in sorted(results):
print('%s: %s' % (key, results[key]))
Спасибо