函数不工作,语法错误等等

Function not working, Syntax errors and more

前几天我在 Keras 上做一个图像字幕模型的项目。但是当我 运行 它时,我面临着一大堆错误。请注意,我在 Python、运行 命令行中使用 Atom 编辑器和虚拟环境。

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 143
train_features = load_photo_features(os.path('C:/Users/neelg/Documents/Atom_projects/Main/features.pkl'), train)
             ^

SyntaxError: invalid syntax

我认为函数的语法是正确的,但错误仍然存​​在。因此,在一个单独的文件中,我复制了函数并试图找出问题所在。 独立函数的代码:-

from pickle import load
import os
def load_photo_features(filename, dataset):
    all_features = load(open(filename, 'rb'))
    features = {k: all_features[k] for k in dataset}
    return features

filename = '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=>请在提交之前在自己的编辑器上测试代码后发送建议,因为我怀疑系统编码引起了一些核心问题(正如其他人所建议的那样) ).此外,由于它的长度和多个文件的要求,无法加载整个代码。

此错误是由于您调用的 os.path 是模块而不是函数。只需删除它,在这个用例中不需要它,一个字符串就足以 open

中的 filename

我正要问你与@ted 相同的问题,为什么你在尝试加载文件时使用 os.path。

通常,我使用以下代码从 pickle 加载:

def load_obj(filename):
  with open(filename, "rb") as fp:
      return pickle.load(fp, enconding = 'bytes')

此外,如果我尝试类似的方法,它会起作用:

from pickle import load
import os
import pdb

def load_photo_features(filename):
   all_features = load(open(filename, 'rb'))
   pdb.set_trace()

   #features = {k: all_features[k] for k in dataset}
   #return features

train_features = load_photo_features('train.pkl')

我不知道要继续的数据集输入是什么,但 pickle 文件的加载工作正常。