Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.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 3.x 属性错误:';列表';对象没有属性';argmax';和numpy.AxisError:轴2超出维度为1的数组的界限_Python 3.x_List_Numpy_Keras_Prediction - Fatal编程技术网

Python 3.x 属性错误:';列表';对象没有属性';argmax';和numpy.AxisError:轴2超出维度为1的数组的界限

Python 3.x 属性错误:';列表';对象没有属性';argmax';和numpy.AxisError:轴2超出维度为1的数组的界限,python-3.x,list,numpy,keras,prediction,Python 3.x,List,Numpy,Keras,Prediction,我有一个预测keras NMT模型的函数,它工作得很好,但是它读取文件,然后将预测保存到另一个文件中 但我需要用户输入并做出预测 完整代码 from keras.preprocessing.sequence import pad_sequences from keras.models import load_model import sys import warnings import argparse from seq2seq_utils import * ap = argparse.Arg

我有一个预测keras NMT模型的函数,它工作得很好,但是它读取文件,然后将预测保存到另一个文件中

但我需要用户输入并做出预测

完整代码

from keras.preprocessing.sequence import pad_sequences
from keras.models import load_model
import sys
import warnings
import argparse
from seq2seq_utils import *

ap = argparse.ArgumentParser()
ap.add_argument('-max_len', type=int, default=95)
ap.add_argument('-vocab_size', type=int, default=31500)

args = vars(ap.parse_args())
MAX_LEN = args['max_len']
VOCAB_SIZE = args['vocab_size']


def load_test_data(user_input, X_word_to_ix, max_len):
    user_input = input()
    X = [text_to_word_sequence(x)[::-1] for x in user_input.split('\n') if 0 < len(x) <= max_len]
    for i, sentence in enumerate(X):
        for j, word in enumerate(sentence):

            if word in X_word_to_ix:
                X[i][j] = X_word_to_ix[word]
            elif word in X_word_to_ix is None:
                X[i][j] = None
            else:
                X[i][j] = X_word_to_ix['UNK']

    return X


model = load_model('model.h5')
model.get_weights()
X, X_vocab_len, X_word_to_ix, X_ix_to_word, y, y_vocab_len, y_word_to_ix, y_ix_to_word = load_data('english.txt',
                                                                                                   'french.txt',
                                                                                                   MAX_LEN,
                                                                                                   VOCAB_SIZE)

saved_weights = find_checkpoint_file('.')
print('please enter the value')
user_input1 = input()
if len(saved_weights) == 0:
    print("The network hasn't been trained! Program will exit...")
    sys.exit()
else:
    X_test = load_test_data(user_input1, X_word_to_ix, MAX_LEN)
    print(type(X_test))
    X_test = pad_sequences(X_test, maxlen=4, dtype='int32')
    print(type(X_test))
    arr=np.array(X_test)

    model.load_weights(saved_weights)
    predictions = np.argmax(model.predict(arr))
    # predictions = np.argmax(list(model.predict(X_test)))
    print(type(predictions))

    # predictions = np.argmax(model.predict(X_test),axis=0)
    sequences = []
    print('1')
    for prediction in predictions:
        print('2')
        sequence = ' '.join([y_ix_to_word[index] for index in prediction if index > 0])
        print(sequence)
        l = sequences.append(sequence)
        print(l)
    np.savetxt('test_result.txt', sequences, fmt='%s')
来自keras.preprocessing.sequence import pad_sequences
从keras.models导入负载_模型
导入系统
进口警告
导入argparse
从seq2seq_utils导入*
ap=argparse.ArgumentParser()
ap.add_参数('-max_len',type=int,default=95)
ap.add_参数('-vocab_size',type=int,default=31500)
args=vars(ap.parse_args())
MAX_LEN=args['MAX_LEN']
VOCAB_SIZE=args['VOCAB_SIZE']
def加载测试数据(用户输入,X字到ix,最大长度):
用户输入=输入()
X=[用户输入中X的文本到单词序列(X)[::-1]。如果0
AttributeError:“list”对象没有属性“argmax”

在处理上述异常期间,发生了另一个异常:

numpy.AxisError:轴2超出维度为1的数组的界限


为什么??感谢您的帮助

什么是
argmax
参数?它是
形状
<代码>数据类型
?这不是完整的代码,np是一个列表,而不是numpy模块。请提供一个重现问题的示例。不,不是,没有导入,大多数函数都没有定义。您无法运行此代码。您似乎没有导入numpy,np变量在哪里定义?我没有询问有关
X\u测试的信息!
argmax
参数是
model.predict(arr)
。这可能是一个值的列表或元组,而这些值不能组成一个漂亮的数字数组。如果
np.array(model.predict(arr)
是一个对象
dtype
array,这将解释
属性的错误。