函数不工作,语法错误等等
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 文件的加载工作正常。
前几天我在 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 文件的加载工作正常。