这是我的数据。它有 7 个图像:
我autokeras 用来训练:
import tensorflow as tf
import numpy as np
import autokeras as ak
from tensorflow.keras.preprocessing import image
BATCH_SIZE = 32
IMG_HEIGHT = 224
IMG_WIDTH = 224
train_data_dir = "E:\\DemoTensorflow\\NhanDienDoiTuong\\Data\\Traintest"
def preprocess(img):
img = image.array_to_img(img, scale=False)
img = img.resize((IMG_WIDTH, IMG_HEIGHT))
img = image.img_to_array(img)
return img / 255.0
image_generator = tf.keras.preprocessing.image.ImageDataGenerator(
rescale=1.0 / 255,
horizontal_flip=True,
validation_split=0.2,
preprocessing_function=preprocess,
)
train_generator = image_generator.flow_from_directory(
directory=train_data_dir,
batch_size=BATCH_SIZE,
shuffle=True,
target_size=(IMG_HEIGHT, IMG_WIDTH),
subset="training",
)
val_generator = image_generator.flow_from_directory(
directory=train_data_dir,
batch_size=BATCH_SIZE,
shuffle=True,
# class_mode="categorical",
target_size=(IMG_HEIGHT, …Run Code Online (Sandbox Code Playgroud) 我通过 python3.6 运行 autokeras 代码。训练完一个模型后出现这样的警告:
Saving model.
+--------------------------------------------------------------------------+
| Model ID | Loss | Metric Value |
+--------------------------------------------------------------------------+
| 0 | 48.8651391018182 | 0.9489116312994325 |
+--------------------------------------------------------------------------+
/usr/local/lib/python3.6/multiprocessing/semaphore_tracker.py:143: UserWarning: semaphore_tracker: There appear to be 1 leaked semaphores to clean up at shutdown
len(cache))
Run Code Online (Sandbox Code Playgroud)
我的训练代码:
clf = ImageClassifier(verbose=True)
clf.fit(x_train, y_train, time_limit=72*60*60)
clf.final_fit(x_train, y_train, x_test, y_test, retrain=True)
y = clf.evaluate(x_test, y_test)
print(y)
Run Code Online (Sandbox Code Playgroud) 我了解 AutoKeras ImageClassifier 的作用(https://autokeras.com/image_classifier/)
clf = ImageClassifier(verbose=True, augment=False)
clf.fit(x_train, y_train, time_limit=12 * 60 * 60)
clf.final_fit(x_train, y_train, x_test, y_test, retrain=True)
y = clf.evaluate(x_test, y_test)
Run Code Online (Sandbox Code Playgroud)
但我无法理解 AutoModel 类(https://autokeras.com/auto_model/)的作用,或者它与 ImageClassifier 有什么不同
autokeras.auto_model.AutoModel(
inputs,
outputs,
name="auto_model",
max_trials=100,
directory=None,
objective="val_loss",
tuner="greedy",
seed=None)
Run Code Online (Sandbox Code Playgroud)
参数输入和输出的文档说
- 输入: HyperNode 实例的列表。AutoModel 的输入节点。
- 输出: HyperHead 实例的列表。AutoModel 的输出头。
什么是超级节点实例?
同样,什么是 GraphAutoModel 类?(https://autokeras.com/graph_auto_model/)
autokeras.auto_model.GraphAutoModel(
inputs,
outputs,
name="graph_auto_model",
max_trials=100,
directory=None,
objective="val_loss",
tuner="greedy",
seed=None)
Run Code Online (Sandbox Code Playgroud)
文档阅读
由超级块图定义的超级模型。GraphAutoModel 是 HyperModel 的子类。除了 HyperModel 属性之外,它还有一个调整器来调整 HyperModel。用户可以以与 Keras 模型类似的方式使用它,因为它也具有 …