![](/img/trans.png)
[英]AttributeError: 'Tensor' object has no attribute '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.ndarray
或tensorflow.Dataset
。
y
当前是一个列表。 将其转换为 numpy 数组
Y = np.asarray(y)
clf.fit(X, Y, validation_split=0.1)
为例子之间的差异tf.data.Dataset.reduce
在Tensorflow文档v1.15.0和V2.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.