我正在动物分类数据集中开发CNN,它被分成2个文件夹,2个文件夹涉及另外的子文件夹...这个结构有四层,现在我想加载它们并将它们转换为要提供给tensorflow的n维数组,这些文件夹的名称是标签。 我希望有人可以帮我一些具体的代码或一些有用的材料。 非常感谢你提前!
这里我举一些例子: Anisopleura Libellulidae Leach,1815 Trithemis极光 Zygoptera Calopterygidae Selys,1850年Calopteryx splendens 极光和芨芨草是这个问题的标签,它们也是五楼子文件夹的名称,图像存储在这些文件夹中。 C:\ Users \ Seth \ Desktop \ dragonfly \ Anisopleura \ Libellulidae Leach,1815 \ Pseudothemis \ zonata
答案 0 :(得分:1)
我使用openface库进行人脸识别,在这个库中,iterImgs是一个方法,可以列出目录下所有图像的列表
详细信息iterImgs
from openface.data import iterImgs
imgs = list(iterImgs("Directory path"))
print imgs # print all images in Directory path also in Tree
或其他方式定义了一个有效的扩展名
vailed_ext = [".jpg",".png"]
import os
f_list = []
def Test2(rootDir):
for lists in os.listdir(rootDir):
path = os.path.join(rootDir, lists)
filename, file_extension = os.path.splitext(path)
if file_extension in vailed_ext:
print path
f_list.append[path]
if os.path.isdir(path):
Test2(path)
Test2("/home/")
print f_list
答案 1 :(得分:1)
os.walk()正是您要找的。 p>
import os
# traverse root directory, and list directories as dirs and files as files
for root, dirs, files in os.walk("."):
path = root.split(os.sep)
print((len(path) - 1) * '---', os.path.basename(root))
for file in files:
print(len(path) * '---', file)
此代码允许您递归地解析所有文件夹和子文件夹。您将获得子文件夹的名称(在您的案例中为标签)和file
变量中的所有文件。
接下来的工作就是创建一个字典(或多块的多维数组)来为每个标签(或子文件夹)存储图像的特征。