Думаю, проблема в i.read_bytes()
. Это считывает содержимое файла, когда вам просто нужно имя файла.
Минимальное изменение будет примерно таким:
file_path_list = [str(i) for i in train_df['file_name']]
dataset = tf.data.TFRecordDataset(filenames=file_path_list)
Но если вам просто нужен список путей к файлам , нет причин сначала создавать фрейм данных:
file_path_list = ['foo/bar/1.png', 'foo/bar/2.png']
Причина, по которой вы получали ошибку, заключается в том, что TFRecordDataset () ожидал список строк в именах файлов, поэтому он попытался и не смог преобразовать данные двоичного файла на utf-8.