【问题标题】:How do I remove unknown, extra, data values from large file?如何从大文件中删除未知的额外数据值?
【发布时间】:2021-07-06 02:04:23
【问题描述】:

我正在研究 Python、TensorFlow、图像分类模型,在我的训练图像中,我有 12,611 张图像,但在我的训练标签中,我有 12,613 张。 (每张图片都有一个数字作为标题,这个数字对应于 CSV 文件中的同一个数字以及该图片的随附信息)。

从这里开始,我需要做的只是删除我没有图片的那 2 个额外数据点。我该如何编写代码来帮助解决这个问题?

(如果代码告诉我哪些数据点是额外的,我可以手动将它们从 CSV 文件中删除)

感谢您的帮助。

【问题讨论】:

  • 听起来与人们获得包含 ... 的目录列表时的惊人相似

标签: python image csv tensorflow image-classification


【解决方案1】:

它非常简单,您可以尝试这样的事情(因为我不知道您保存图像的确切方式和位置,您可能需要更新代码以满足您的用例):

dir_path = r'/path/to/folder/of/images'
csv_path = r'/path/to/csv/file'
images = []

# Get all images labels
for filename in os.listdir(dir_path):
    images.append(int(filename.split('.')[0]))

# Read CSV
df = pd.read_csv(csv_path)

# Print which labels are extra
for i in df['<COLUMN_NAME>'].tolist():
    if i not in images:
        print(i)

【讨论】:

  • 嗨,我输入了我自己的信息,我的图像路径为“/Users/downloads/Boneage_competition/training_dataset/Resized/”,我的 csv 文件为“/Users/FOLDEER/downloads/train.csv” ' 和我的 作为“id”,但我收到如下错误消息: ValueError Traceback (most recent call last) in 5 # Get all images labels 6 for filename in os.listdir(dir_path): ----> 7 images.append(int(filename)) 8 9 # Read CSV ValueError: invalid literal for int() with base 10: '3975.png'
  • 嗨,我已经更新了答案检查它现在是否有效
  • 嗨,我遇到了同样的错误,但现在看起来像这样:ValueError: invalid literal for int() with base 10: ''
  • 如果您的目录中有.&lt;EXTENSION&gt; 文件会出现这种情况,请确保其所有图像格式为&lt;NUMBER&gt;.&lt;EXTENSION&gt;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-01
  • 2013-01-10
相关资源
最近更新 更多