繁体   English   中英

AttributeError: 'Tensor' 对象没有属性 'numpy

[英]AttributeError: 'Tensor' object has no attribute 'numpy

当我拟合数据时,我尝试使用 autokeras 进行图像分类模型,此错误发生

DATADIR = r"C:\Users\angesu\Desktop\DOCUMENT_DATA"

CATEGORIES = ["resume","transcript","certificate"]
IMG_SIZE = 250

for category in CATEGORIES :
    path = os.path.join(DATADIR, category)
    for img in os.listdir(path):
        img_array = cv2.imread(os.path.join(path, img), cv2.IMREAD_GRAYSCALE)

training_data = []
def create_training_data():
    for category in CATEGORIES :
        path = os.path.join(DATADIR, category)
        class_num = CATEGORIES.index(category)
        for img in os.listdir(path):
            try :
                img_array = cv2.imread(os.path.join(path, img), cv2.IMREAD_GRAYSCALE)
                new_array = cv2.resize(img_array, (IMG_SIZE, IMG_SIZE))
                training_data.append([new_array, class_num])
            except Exception as e:
                pass
create_training_data()
random.shuffle(training_data)

X = [] #features
y = [] #labels
for features, label in training_data:
    X.append(features)
    y.append(label)

X = np.asarray(X).reshape(-1, IMG_SIZE, IMG_SIZE, 1)

clf = ak.ImageClassifier(max_trials=10)
clf.fit(X,y,validation_split=0.1)

def prepare(file):
    IMG_SIZE = 250
    img_array = cv2.imread(file, cv2.IMREAD_GRAYSCALE)
    new_array = cv2.resize(img_array, (IMG_SIZE, IMG_SIZE))
    return new_array.reshape(-1, IMG_SIZE, IMG_SIZE, 1)

path = r"C:\Users\angesu\Downloads\Garn-Certificate-4.jpg"

predicted_y = clf.predict(prepare(path))

print(clf.evaluate(test_set))

我不知道如何解决这个问题我正在尝试使用 tf.data.Dataset.from_tensor_slices() 但这个错误仍然显示我在谷歌这个错误但我什么都不明白错误在 clf.fit (X,y,validation_split=0.1)

错误信息

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-11-b327f1f23808> in <module>
      1 clf = ak.ImageClassifier(max_trials=10)
      2 # Feed the tensorflow Dataset to the classifier.
----> 3 clf.fit(X,Y,validation_split=0.1)
      4 # Predict with the best model.
      5 

C:\ProgramData\Anaconda3\lib\site-packages\autokeras\task.py in fit(self, x, y, epochs, callbacks, validation_split, validation_data, **kwargs)
    114                     validation_split=validation_split,
    115                     validation_data=validation_data,
--> 116                     **kwargs)
    117 
    118 

C:\ProgramData\Anaconda3\lib\site-packages\autokeras\auto_model.py in fit(self, x, y, epochs, callbacks, validation_split, validation_data, **kwargs)
    156             y=y,
    157             validation_data=validation_data,
--> 158             validation_split=validation_split)
    159 
    160         # Initialize the hyper_graph.

C:\ProgramData\Anaconda3\lib\site-packages\autokeras\auto_model.py in _prepare_data(self, x, y, validation_data, validation_split)
    259         if validation_data is None and validation_split:
    260             self._split_dataset = True
--> 261             dataset, validation_data = utils.split_dataset(dataset, validation_split)
    262         return dataset, validation_data
    263 

C:\ProgramData\Anaconda3\lib\site-packages\autokeras\utils.py in split_dataset(dataset, validation_split)
     64         A tuple of two tf.data.Dataset. The training set and the validation set.
     65     """
---> 66     num_instances = dataset.reduce(np.int64(0), lambda x, _: x + 1).numpy()
     67     if num_instances < 2:
     68         raise ValueError('The dataset should at least contain 2 '

AttributeError: 'Tensor' object has no attribute 'numpy'

autokeras.task.ImageClassifier.fit期望两个训练数据都是numpy.ndarraytensorflow.Dataset

y当前是一个列表。 将其转换为 numpy 数组

Y = np.asarray(y)

clf.fit(X, Y, validation_split=0.1)

为例子之间的差异tf.data.Dataset.reduce在Tensorflow文档v1.15.0V2.0.0反映了reduce函数返回一个tensorflow.python.framework.ops.Tensor实例,而不是一个tensorflow.python.framework.ops.EagerTensor早期版本的tensorflow.python.framework.ops.EagerTensor实例。

autokeras.utils.split_dataset期望缩减的Dataset是一个EagerTensor实例,因为它在其上调用numpy函数。

我建议将您的 tensorflow 版本升级到2.0.0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM