从 CNN(Xception 模型)中提取特征,我得到 IsADirectoryError?
Posted
技术标签:
【中文标题】从 CNN(Xception 模型)中提取特征,我得到 IsADirectoryError?【英文标题】:Extractung features from CNN (Xception model), I got IsADirectoryError? 【发布时间】:2021-11-26 08:45:09 【问题描述】:从 xcption 模型中提取特征 我正在使用 cnn 和 lstm 开发图像标题生成器,并且我分享了从网站获得的代码。我试图解决它,但是当我对代码进行更改时,我在其他部分出现错误,所以任何人都可以告诉我如何解决这个问题
def extract_features(directory):
model = Xception( include_top=False, pooling='avg' )
features =
for img in tqdm(os.walk(directory)):
filename = directory + "/" + img
image = Image.open(filename)
image = image.resize((299,299))
image = np.expand_dims(image, axis=0)
#image = preprocess_input(image)
image = image/127.5
image = image - 1.0
feature = model.predict(image)
features[img] = feature
return features
#2048 feature vector
features = extract_features(dataset_images)
dump(features, open("features.p","wb"))
错误
TypeError Traceback (most recent call last)
<ipython-input-8-5f1d4e4e3211> in <module>()
16
17 #2048 feature vector
---> 18 features = extract_features(dataset_images)
19 dump(features, open("features.p","wb"))
<ipython-input-8-5f1d4e4e3211> in extract_features(directory)
3 features =
4 for img in tqdm(os.walk(directory)):
----> 5 filename = directory + "/" + img
6 image = Image.open(filename)
7 image = image.resize((299,299))
TypeError: can only concatenate str (not "tuple") to str
【问题讨论】:
os.listdir()
返回文件和目录。所以你正在尝试使用Image.open
打开一个目录
是的,我想打开一个图像数据集。我是否需要使用其他代码来打开目录?实际上,我将 'os.listdir()' 更改为 'os.walk' 并解决了 ' IsADirectory ' 错误,但我遇到了其他错误。
顺便说一句,你的新错误是什么?
我已经更新了我所做的更改后出现的新错误。你能查一下吗,我卡在那里了
【参考方案1】:
在您的情况下,filename = directory + "/" + img
中的 img
是一个元组,directory
是一个字符串,因此它们不能被连接。
所以你已经循环通过img
。在这种情况下,您可能会收到另一个错误,因为img
包含根目录和子目录。
def extract_features(directory):
model = Xception( include_top=False, pooling='avg' )
features =
for (root,dirs,files) in tqdm(os.walk(directory)):
for img in files:
filename = directory + "/" + img
image = Image.open(filename)
image = image.resize((299,299))
image = np.expand_dims(image, axis=0)
#image = preprocess_input(image)
image = image/127.5
image = image - 1.0
feature = model.predict(image)
features[img] = feature
return features
【讨论】:
我尝试使用您提供的代码,但出现此错误...... FileNotFoundError: [Errno 2] No such file or directory: '/content/drive/MyDrive/Project /Flickr8k_Dataset (1).zip(解压文件)/446291803_2fd4641b99.jpg' 如果图像位于压缩文件夹中,您可能必须在同一位置解压缩文件并删除压缩文件。可以添加文件结构的截图吗? 其实这个错误现在已经解决了,这是我的错误,因为我给的路径是错误的,现在一切都很好。您是一直在帮助我度过难关的人,非常感谢您的帮助和努力。再次非常感谢......以上是关于从 CNN(Xception 模型)中提取特征,我得到 IsADirectoryError?的主要内容,如果未能解决你的问题,请参考以下文章