Python 如何在Tensorflow中填充元组数据以进行批处理?

Python 如何在Tensorflow中填充元组数据以进行批处理?,python,tensorflow,Python,Tensorflow,我无法执行填充批处理dataset.padded_batch(),在Tensorflow中,以下是我的代码: 这段代码抛出了一个错误,不起作用,我想这是因为出于某种原因,我使用自己的代码来计算MFCC,但如果我不调用padded_batch,它就会起作用 我得到以下错误: “InvalidArgumentError:批处理中的所有元素必须与组件0的填充形状具有相同的等级:预期等级为1,但获得等级为2的元素。” [[Node:IteratorGetNext=IteratorGetNextoutpu

我无法执行填充批处理dataset.padded_batch(),在Tensorflow中,以下是我的代码:

这段代码抛出了一个错误,不起作用,我想这是因为出于某种原因,我使用自己的代码来计算MFCC,但如果我不调用padded_batch,它就会起作用

我得到以下错误:

“InvalidArgumentError:批处理中的所有元素必须与组件0的填充形状具有相同的等级:预期等级为1,但获得等级为2的元素。” [[Node:IteratorGetNext=IteratorGetNextoutput_shapes=[[?,?],[?,?],[?,?],[?,?]],输出_类型=[DT_DOUBLE,DT_字符串,DT_INT64],_device=“/job:localhost/replica:0/任务:0/设备:CPU:0”]”

def_read_py_功能(音频、标签):
音频=音频至音频mfcc(音频)
原始长度=音频.形状[0]
#如果audio.shape[0]=时间步:
#原始长度=时间步长
#音频=标准化(pad(音频),轴=1)
#音频=键盘(音频)
返回音频、标签、原始长度
dataset=tf.contrib.data.TextLineDataset(“hardik_250_docker.csv”)
dataset=dataset.map(解码\u csv)
dataset=dataset.map(
lambda音频,标签:元组(tf.py_func(
_read_py_函数[audio,label],[tf.double,label.dtype,tf.int64]))
形状=([None]、[None]、[None])
dataset=dataset.padded_批处理(2,padded_形状=形状)

请在问题中包含错误信息。我添加了确切的错误,我得到
def _read_py_function(audio, label):
    audio = audio_to_mfcc(audio)
    original_length=audio.shape[0]

    #if audio.shape[0] < timesteps:
     #   original_length=audio.shape[0]
       # print(original_length)

    #elif audio.shape[0] >= timesteps:
     #   original_length=timesteps


    #audio=normalized(pad(audio) , axis=1 )
   # audio=pad(audio)

    return audio ,label, original_length

dataset = tf.contrib.data.TextLineDataset("hardik_250_docker.csv")
dataset=dataset.map(decode_csv)



dataset = dataset.map(
    lambda audio, label: tuple(tf.py_func(
        _read_py_function, [audio, label], [tf.double, label.dtype, tf.int64])))


shapes=([None]  , [None], [None])
dataset=dataset.padded_batch(2, padded_shapes=shapes)