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