Tensorflow:Int,float类型在record默认值中不起作用

2024-06-07 11:03:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我想导入各种类型的列,比如int,float,string作为张量。只有第一个记录默认值有效,其中所有记录都设置为字符串。在

但我得到了下面的错误。有没有办法把tensorflow与各种类型的占位符一起使用?在

csv文件来自aws。在

import tensorflow as tf

# https://s3.amazonaws.com/aml-sample-data/banking.csv
file1="/Users/Q/Downloads/banking.csv"
filename_queue = tf.train.string_input_producer([file1])
reader = tf.TextLineReader(skip_header_lines=1)
key, value = reader.read(filename_queue)

# record_defaults = [[""], [""], [""], [""], [""], [""], [""], [""], [""], [""], [""], [""], [""], [""], [""], [""], [""], [""], [""], [""], [0]]
# record_defaults = [[0], [""], [""], [""], [""], [""], [""], [""], [""], [""], [0], [0], [0], [0], [""], [0.0], [0.0], [0.0], [0.0], [0.0], [0]]
record_defaults = [[0], [""], [""], [""], [""], [""], [""], [""], [""], [""], [""], [""], [""], [""], [""], [""], [""], [""], [""], [""], [0]]

cols = tf.decode_csv(value, record_defaults=record_defaults, field_delim=",")

features = tf.stack(cols[:-1])

with tf.Session() as sess:
  # Start populating the filename queue.
  coord = tf.train.Coordinator()
  threads = tf.train.start_queue_runners(coord=coord)

  for i in range(1000):
    # Retrieve a single instance:
    example, label = sess.run([features, cols[-1]])

  coord.request_stop()
  coord.join(threads)

错误信息

^{pr2}$

Tags: csvstringqueuetftensorflowas记录train
1条回答
网友
1楼 · 发布于 2024-06-07 11:03:06

罪魁祸首是这一行:features = tf.stack(cols[:-1])。它尝试将所有的特征列张量堆叠到一个张量中,只有当它们属于同一类型(并且类型是从记录默认值推导出来的)时,这才有效。在

所以不要把它们都堆起来,你会没事的。在

相关问题 更多 >

    热门问题