私はTensorFlow Dataset APIを使用してCSVファイルを解析し、ロジスティック回帰を実行しています。私はTFの文書hereの例に従っています。TensorFlow Dataset APIの解析エラー
def input_fn(path, num_epochs, batch_size):
dataset = tf.data.TextLineDataset(path)
dataset = dataset.map(parse_table, num_parallel_calls=12)
dataset = dataset.repeat(num_epochs)
dataset.batch(batch_size)
iterator = dataset.make_one_shot_iterator()
features, labels = iterator.get_next()
return features, labels
def parse_table(value):
cols = tf.decode_csv(value, record_defaults=TAB_COLUMN_DEFAULTS)
indep_vars = dict(zip(CSV_COLS, cols))
y = indep_vars.pop('y')
return indep_vars, y
def build_indep_vars():
continuous_vars = [
tf.feature_column.numeric_column(x, shape=1) for x in CONT_COLS]
categorical_vars = [
tf.feature_column.categorical_column_with_hash_bucket(
x, hash_bucket_size=100) for x in CAT_COLS]
return categorical_vars + continuous_vars
lr.train(input_fn = lambda: input_fn(data_path, 1, 100))
呼び出す(注:バッチサイズは100)私は
ValueError: Feature (key: V1) cannot have rank 0. Give: Tensor("IteratorGetNext:0", shape=(), dtype=float32, device=/device:CPU:0)
だから私はエラーを取得しています、私はモデルを設定していますか
は、次のコードスニペットを示していこれは、tf.feature_column.numeric_column
コールの1つがスカラー値を得ていることを意味すると仮定しています。しかし、なぜこれが当てはまるのか分かりません。私はbatch_size
を正の整数に設定しました。ドキュメントによれば、tf.feature_column.numeric_column
から生成されるNDarの形状は、デフォルトで1Xbatch_size
になるはずです。 TensorFlowがこのエラーを返す理由を誰でも説明できますか?
私はこの質問には簡単な答えがあると確信していますが、私はそれを理解していないのは馬鹿だと感じるでしょう。
実際には、問題は 'dataset.batch(batch_size)'の出力を割り当てていませんでした。ありがとう! – aht