Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python TypeError:(';关键字参数不理解:';,';数据格式';)CoreML/Xcode_Python_Keras_Typeerror_Coreml - Fatal编程技术网

Python TypeError:(';关键字参数不理解:';,';数据格式';)CoreML/Xcode

Python TypeError:(';关键字参数不理解:';,';数据格式';)CoreML/Xcode,python,keras,typeerror,coreml,Python,Keras,Typeerror,Coreml,我正试图修改本教程以使用我自己的数据集/模型: 但是,当我尝试获取已序列化的模型并通过运行coremlconverter.py脚本将其转换为.mlmodel for Xcode时: # USAGE # python coremlconverter.py --model pokedex.model --labelbin lb.pickle # import necessary packages from keras.models import load_model import coremlt

我正试图修改本教程以使用我自己的数据集/模型:

但是,当我尝试获取已序列化的模型并通过运行coremlconverter.py脚本将其转换为.mlmodel for Xcode时:

# USAGE
# python coremlconverter.py --model pokedex.model --labelbin lb.pickle

# import necessary packages
from keras.models import load_model
import coremltools
import argparse
import pickle

# construct the argument parser and parse the arguments
ap = argparse.ArgumentParser()
ap.add_argument("-m", "--model", required=True, help="path to trained model model")
ap.add_argument("-l", "--labelbin", required=True, help="path to label binarizer")
args = vars(ap.parse_args())

# load the class labels
print("[INFO] loading class labels from label binarizer")
lb = pickle.loads(open(args["labelbin"], "rb").read())
class_labels = lb.classes_.tolist()
print("[INFO] class labels: {}".format(class_labels))

# load the trained convolutional neural network
print("[INFO] loading model...")
model = load_model(args["model"])

# convert the model to coreml format
print("[INFO] converting model")
coreml_model = coremltools.converters.keras.convert(model,
input_names="image",
image_input_names="image",
image_scale=1/255.0,
class_labels=class_labels,
is_bgr=True)

# save the model to disk
output = args["model"].rsplit(".", 1)[0] + ".mlmodel"
print("[INFO] saving model as {}".format(output))
coreml_model.save(output)
我最终得到以下回溯/错误:

Traceback (most recent call last):
File "coremlconverter.py", line 26, in <module> model = load_model(args["model"])
File "/Users/fraser/.virtualenvs/keras_tf/lib/python3.6/site-packages/keras/models.py", line 243, in load_model
model = model_from_config(model_config, custom_objects=custom_objects)
File "/Users/fraser/.virtualenvs/keras_tf/lib/python3.6/site-packages/keras/models.py", line 317, in model_from_config
return layer_module.deserialize(config, custom_objects=custom_objects)
File "/Users/fraser/.virtualenvs/keras_tf/lib/python3.6/site-packages/keras/layers/__init__.py", line 55, in deserialize
printable_module_name='layer')
File "/Users/fraser/.virtualenvs/keras_tf/lib/python3.6/site-packages/keras/utils/generic_utils.py", line 143, in deserialize_keras_object
list(custom_objects.items())))
File "/Users/fraser/.virtualenvs/keras_tf/lib/python3.6/site-packages/keras/models.py", line 1352, in from_config
layer = layer_module.deserialize(conf, custom_objects=custom_objects)
File "/Users/fraser/.virtualenvs/keras_tf/lib/python3.6/site-packages/keras/layers/__init__.py", line 55, in deserialize
printable_module_name='layer')
File "/Users/fraser/.virtualenvs/keras_tf/lib/python3.6/site-packages/keras/utils/generic_utils.py", line 145, in deserialize_keras_object
return cls.from_config(config['config'])
File "/Users/fraser/.virtualenvs/keras_tf/lib/python3.6/site-packages/keras/engine/topology.py", line 1269, in from_config
return cls(**config)
File "/Users/fraser/.virtualenvs/keras_tf/lib/python3.6/site-packages/keras/layers/core.py", line 483, in __init__
super(Flatten, self).__init__(**kwargs)
File "/Users/fraser/.virtualenvs/keras_tf/lib/python3.6/site-packages/keras/engine/topology.py", line 292, in __init__
raise TypeError('Keyword argument not understood:', kwarg)
TypeError: ('Keyword argument not understood:', 'data_format')
回溯(最近一次呼叫最后一次):
文件“coremlconverter.py”,第26行,在model=load_model(args[“model”])中
文件“/Users/fraser/.virtualenvs/keras\u tf/lib/python3.6/site packages/keras/models.py”,第243行,加载模型
模型=来自配置的模型(模型配置,自定义对象=自定义对象)
文件“/Users/fraser/.virtualenvs/keras\u tf/lib/python3.6/site-packages/keras/models.py”,第317行,来自配置的模型中
返回层\模块。反序列化(配置,自定义\对象=自定义\对象)
文件“/Users/fraser/.virtualenvs/keras_tf/lib/python3.6/site packages/keras/layers/_init__.py”,第55行,反序列化
可打印\u模块\u name='layer')
文件“/Users/fraser/.virtualenvs/keras\u tf/lib/python3.6/site packages/keras/utils/generic\u utils.py”,第143行,反序列化\u keras\u对象
列表(自定义对象.项())
文件“/Users/fraser/.virtualenvs/keras\u tf/lib/python3.6/site packages/keras/models.py”,第1352行,from\u config
层=层\模块。反序列化(配置,自定义\对象=自定义\对象)
文件“/Users/fraser/.virtualenvs/keras_tf/lib/python3.6/site packages/keras/layers/_init__.py”,第55行,反序列化
可打印\u模块\u name='layer')
文件“/Users/fraser/.virtualenvs/keras\u tf/lib/python3.6/site packages/keras/utils/generic\u utils.py”,第145行,反序列化\u keras\u对象
从_config(config['config'])返回cls
文件“/Users/fraser/.virtualenvs/keras\u tf/lib/python3.6/site packages/keras/engine/topology.py”,第1269行,from\u config
返回cls(**配置)
文件“/Users/fraser/.virtualenvs/keras\u-tf/lib/python3.6/site-packages/keras/layers/core.py”,第483行,在__
超级(展平,自我)。\uuuuu初始化(**kwargs)
文件“/Users/fraser/.virtualenvs/keras\u-tf/lib/python3.6/site-packages/keras/engine/topology.py”,第292行,在__
raise TypeError('关键字参数未理解:',kwarg)
TypeError:(“关键字参数未理解:”,“数据格式”)
我不知道为什么会出现这个错误,因为我训练过的模型与教程中的模型具有完全相同的体系结构。我所做的就是更改类标签的数量


如果您能提供任何关于失败的地方/原因以及如何修复的建议,我将不胜感激。

经过一些研究,我逐渐意识到问题在于我用于序列化的tensorflow/keras版本;我不得不降级到较低的版本,以便将其写入.mlmodel文件而不会出错。

您最终使用了哪些版本?我相信我最终使用的是Keras 2.1.3/Tensorflow 1.8.0。希望有帮助!