gpt4 book ai didi

python - 什么以及为什么 "TypeError: Required argument ' layout' (pos 2) not found“Python 中的错误?

转载 作者:太空宇宙 更新时间:2023-11-03 21:51:50 24 4
gpt4 key购买 nike

我能知道为什么会发生错误吗?我还需要帮助才能运行这个项目吗??

当我输入时

python mlp_training.py

我得到的错误

Loading training data...
(0, 38400)
(0, 4)
Loading image duration: 0.000199834
Training MLP ...
Traceback (most recent call last):
File "mlp_training.py", line 49, in <module>
num_iter = model.train((train, ( train_labels ), ( params )))
TypeError: Required argument 'layout' (pos 2) not found

代码

__author__ = 'zhengwang'

import cv2
import numpy as np
import glob

print 'Loading training data...'
e0 = cv2.getTickCount()

# load training data
image_array = np.zeros((1, 38400))
label_array = np.zeros((1, 4), 'float')
training_data = glob.glob('training_data/*.npz')

for single_npz in training_data:
with np.load(single_npz) as data:
print data.files
train_temp = data['train']
train_labels_temp = data['train_labels']
print train_temp.shape
print train_labels_temp.shape
image_array = np.vstack((image_array, train_temp))
label_array = np.vstack((label_array, train_labels_temp))

train = image_array[1:, :]
train_labels = label_array[1:, :]
print train.shape
print train_labels.shape

e00 = cv2.getTickCount()
time0 = (e00 - e0)/ cv2.getTickFrequency()
print 'Loading image duration:', time0

# set start time
e1 = cv2.getTickCount()

# create MLP
layer_sizes = np.int32([38400, 32, 4])
model = cv2.ml.ANN_MLP_create()
model.setLayerSizes(layer_sizes)
criteria = (cv2.TERM_CRITERIA_COUNT | cv2.TERM_CRITERIA_EPS, 500, 0.0001)
criteria2 = (cv2.TERM_CRITERIA_COUNT, 100, 0.001)
params = dict(term_crit = criteria,
train_method = cv2.ml.ANN_MLP_BACKPROP,
bp_dw_scale = 0.001,
bp_moment_scale = 0.0 )

print 'Training MLP ...'
num_iter = model.train((train, ( train_labels ), ( params )))

# set end time
e2 = cv2.getTickCount()
time = (e2 - e1)/cv2.getTickFrequency()
print 'Training duration:', time

# save param
model.save('mlp_xml/mlp.xml')

print 'Ran for %d iterations' % num_iter

ret, resp = model.predict(train)
prediction = resp.argmax(-1)
print 'Prediction:', prediction
true_labels = train_labels.argmax(-1)
print 'True labels:', true_labels

print 'Testing...'
train_rate = np.mean(prediction == true_labels)
print 'Train rate: %f:' % (train_rate*100)

我正在使用 python。我正在使用 OpenCV 3.2.0。我正在学习的语言是 C++,但对于我正在用 python 做的项目。对不起。

GitHub 页面的链接是 https://github.com/hamuchiwa/AutoRCCar

所有代码归功于其所有者。我只是简单地复制了代码并在这里和那里修改它以满足我的需要。

如有任何我真正需要解决的问题,请随时提出

我的系统:

Ubuntu 16.04 长期支持版

最佳答案

看起来您向 OpenCV 的 ANN_MLP 类的 train 方法提供了错误数量的参数。它至少需要 3 个。 这里是 docs 请检查修改。

问题本身就在这一行:

print 'Training MLP ...'
num_iter = model.train((train, ( train_labels ), ( params )))

您正在向其中发送一个元组。 (python 中的元组如下所示:(1,2,3))您可以尝试将其更改为如下所示:

print 'Training MLP ...'
num_iter = model.train(train, train_labels, params)

但我不知何故怀疑这是否是使其正常工作所需的唯一修复。

编辑:我错误地查看了旧版本的文档。看起来您正在尝试使用一种 train 重载方法,该方法需要来自新 OpenCV 的一个参数,但 python 绑定(bind)可能已关闭,并且 python 以某种方式认为您正在尝试使用 [2/3] train 方法来自 these docs

关于python - 什么以及为什么 "TypeError: Required argument ' layout' (pos 2) not found“Python 中的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41596540/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com