Tensorflow .batch 没有正确分离张量
Tensorflow .batch does not separate tensors correctly
我有一个形状数组 (1, 6354944)
array([[ 9.15527344e-05, -6.10351562e-05, 6.10351562e-05, ...,
1.01928711e-02, 7.92236328e-02, -2.69470215e-02]])
并将它们转换为张量切片
stream = tf.data.Dataset.from_tensor_slices(reshaped_data)
但是当我对它们进行批处理时
seqs = stream.batch(1000, drop_remainder=True)
它returns
<BatchDataset shapes: (1000, 6354944), types: tf.float64>
当它的形状应该是
(1000, 6354)
你应该设置
drop_remainder=假
如文档中所述生产较小的批次:
批次:
批量(
batch_size、drop_remainder=假、num_parallel_calls=None、确定性=None
)
结果元素的组件将有一个额外的外部维度,这将是 batch_size(或 N % batch_size 对于最后一个元素,如果 batch_size 不除数输入元素 N 均匀并且 drop_remainder 为 False)。如果您的程序依赖于具有相同外部尺寸的批次,则应将 drop_remainder 参数设置为 True 以防止生成较小的批次。
您可以在创建数据集之前重塑数据:
r = tf.reshape(a[ : , :6354000 ], (1000, 6354))
stream = tf.data.Dataset.from_tensor_slices(r)
seqs = stream.batch(1000) #(1000,6354)
我有一个形状数组 (1, 6354944)
array([[ 9.15527344e-05, -6.10351562e-05, 6.10351562e-05, ...,
1.01928711e-02, 7.92236328e-02, -2.69470215e-02]])
并将它们转换为张量切片
stream = tf.data.Dataset.from_tensor_slices(reshaped_data)
但是当我对它们进行批处理时
seqs = stream.batch(1000, drop_remainder=True)
它returns
<BatchDataset shapes: (1000, 6354944), types: tf.float64>
当它的形状应该是
(1000, 6354)
你应该设置
drop_remainder=假
如文档中所述生产较小的批次:
批次:
批量( batch_size、drop_remainder=假、num_parallel_calls=None、确定性=None )
结果元素的组件将有一个额外的外部维度,这将是 batch_size(或 N % batch_size 对于最后一个元素,如果 batch_size 不除数输入元素 N 均匀并且 drop_remainder 为 False)。如果您的程序依赖于具有相同外部尺寸的批次,则应将 drop_remainder 参数设置为 True 以防止生成较小的批次。
您可以在创建数据集之前重塑数据:
r = tf.reshape(a[ : , :6354000 ], (1000, 6354))
stream = tf.data.Dataset.from_tensor_slices(r)
seqs = stream.batch(1000) #(1000,6354)