Python Hyperas:';列表';对象没有属性';形状';
我试图从TSV文件中读入一些数据,以便与一起使用,但无论如何,我都会遇到相同的错误:Python Hyperas:';列表';对象没有属性';形状';,python,csv,tensorflow,machine-learning,keras,Python,Csv,Tensorflow,Machine Learning,Keras,我试图从TSV文件中读入一些数据,以便与一起使用,但无论如何,我都会遇到相同的错误: Traceback (most recent call last): File "/path/to/cnn_search.py", line 233, in <module> trials=trials) File "~/miniconda3/lib/python3.6/site-packages/hyperas/optim.py", line 67, in minimize
Traceback (most recent call last):
File "/path/to/cnn_search.py", line 233, in <module>
trials=trials)
File "~/miniconda3/lib/python3.6/site-packages/hyperas/optim.py", line 67, in minimize
verbose=verbose)
File "~/miniconda3/lib/python3.6/site-packages/hyperas/optim.py", line 133, in base_minimizer
return_argmin=True),
File "~/miniconda3/lib/python3.6/site-packages/hyperopt/fmin.py", line 312, in fmin
return_argmin=return_argmin,
File "~/miniconda3/lib/python3.6/site-packages/hyperopt/base.py", line 635, in fmin
return_argmin=return_argmin)
File "~/miniconda3/lib/python3.6/site-packages/hyperopt/fmin.py", line 325, in fmin
rval.exhaust()
File "~/miniconda3/lib/python3.6/site-packages/hyperopt/fmin.py", line 204, in exhaust
self.run(self.max_evals - n_done, block_until_done=self.async)
File "~/miniconda3/lib/python3.6/site-packages/hyperopt/fmin.py", line 178, in run
self.serial_evaluate()
File "~/miniconda3/lib/python3.6/site-packages/hyperopt/fmin.py", line 97, in serial_evaluate
result = self.domain.evaluate(spec, ctrl)
File "~/miniconda3/lib/python3.6/site-packages/hyperopt/base.py", line 840, in evaluate
rval = self.fn(pyll_rval)
File "~/temp_model.py", line 218, in keras_fmin_fnct
AttributeError: 'list' object has no attribute 'shape'
我还认为有一种更有效的方法可以做到这一点,而无需创建这么多中间数组,这将非常好,因为我将读取数百万行数据
我做错了什么
编辑:描述
试验
您是否考虑过使用np.genfromtxt('your_file.tsv')
?
在阅读csv和tsv数据方面效果非常好,我最近在这方面有过很好的经验。此外,如果您需要更详细的答案,您可能需要提供有关您的具体问题的更多信息(数据类型、布局等)。请阅读本文,并通过更新您的帖子来遵循其建议。例如,什么是
试用版
?我们看不出它的定义。无论如何,我们需要一个可验证的例子。keras\u fmin\u fnct
是什么?@nbro就可以了。trials
的定义如下:trials=trials()
,这是一个Hyperas/Hyperopt对象。我可以添加到wiki的链接。@user2357112我不完全确定。它看起来像一个内部Keras/Hyperas函数:。不幸的是,我无法直接访问temp_model.py
:它是作为临时文件创建的,并写入到这个文件中。这太棒了!我使用的是np.loadtxt()
,因为我没有丢失的数据。
from hyperas import optim
...
import numpy as np
import csv
def data():
dataPath="/path/to/fm.labeled.10m.txt"
X = []
Y = []
with open(dataPath) as dP:
reader = csv.reader(dP, delimiter="\t")
for row in reader:
#skip the first two columns, and the last column is labels
X.append(np.array(row[2:-1]))
#labels
Y.append(row[-1])
encoder = LabelBinarizer()
Y_categorical = encoder.fit_transform(Y)
#split data into test and train
X_train, X_test, Y_train, Y_test = train_test_split(X, Y_categorical, test_size=0.25)
X_train_np = np.array(X_train)
X_test_np = np.array(X_test)
Y_train_np = np.array([np.array(y) for y in Y_train])
Y_test_np = np.array([np.array(y) for y in Y_test])
return X_train_np, Y_train_np, X_test_np, Y_test_np
...
trials = Trials()
best_run, best_model = optim.minimize(model=model_name,
data=data,
algo=tpe.suggest,
max_evals=numRuns,
trials=trials)