前几天,我正在为Keras上的图像标注模型开发一个项目。但是在运行时,我遇到了许多错误。请注意,我使用的是Atom编辑器和Python的虚拟环境,通过命令行运行一切。
train_features = load_photo_features(os.path('C:/Users/neelg/Documents/Atom_projects/Main/features.pkl'), train)
在这一行,我收到了这个错误==>
File "C:\Users\neelg\Documents\Atom_projects\Main\Img_cap.py", line 143train_features = load_photo_features(os.path('C:/Users/neelg/Documents/Atom_projects/Main/features.pkl'), train) ^
SyntaxError: 无效的语法
我认为函数的语法是正确的,但错误依然存在。因此,我在另一个文件中复制了该函数,并尝试隔离问题。独立函数的代码如下:
from pickle import loadimport osdef load_photo_features(filename, dataset): all_features = load(open(filename, 'rb')) features = {k: all_features[k] for k in dataset} return featuresfilename = 'C:/Users/neelg/Documents/Atom_projects/Main/Flickr8k_text/Flickr8k.trainImages.txt'train_features = load_photo_features(os.path('C:/Users/neelg/Documents/Atom_projects/Main/features.pkl'), train)
现在,出现了一种不同类型的问题:
Traceback (most recent call last): File "C:\Users\neelg\Documents\Atom_projects\Main\testing.py", line 10, in <module> train_features = load_photo_features(os.path('C:/Users/neelg/Documents/Atom_projects/Main/features.pkl'), train)TypeError: 'module' object is not callable
有什么帮助吗?我正在尝试导入Flickr_8k数据集,其中包含随机图片和另一个小数据集,这些是那些照片的标签…
P.S=>请在提交建议之前,先在您自己的编辑器上测试代码,因为我怀疑由于系统编码(如其他人所建议)引起了某些核心问题。另外,由于代码长度和需要多个文件,不可能加载整个代码。
回答:
我正要问@ted同样的问题,你为什么在尝试加载文件时使用os.path?
通常,我使用以下代码从pickle加载数据:
def load_obj(filename): with open(filename, "rb") as fp: return pickle.load(fp, enconding = 'bytes')
此外,如果我尝试类似的东西,它会工作:
from pickle import loadimport osimport pdbdef load_photo_features(filename): all_features = load(open(filename, 'rb')) pdb.set_trace() #features = {k: all_features[k] for k in dataset} #return featurestrain_features = load_photo_features('train.pkl')
我不知道数据集输入是什么,但我不知道如何继续,但pickle文件的加载工作得很好。