CNN_model = tf.keras.Sequential([
tf.keras.layers.Input(shape=(IMAGE_SIZE, IMAGE_SIZE, 3)),
tf.keras.layers.Conv2D(filters=32, kernel_size=3, activation="relu", name='conv1'),
tf.keras.layers.Conv2D(filters=64, kernel_size=3, activation="relu", name='conv2'),
tf.keras.layers.MaxPooling2D(pool_size=2, name='maxpool1'),
tf.keras.layers.Conv2D(filters=128, kernel_size=3, activation="relu", name='conv3'),
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(128, activation='relu', name='dense1'),
tf.keras.layers.Dense(1, activation='sigmoid', name='prediction')
], name='CNN_model')
< /code>
Поскольку модели требуется некоторое время, я подумал, что должен сохранить ее (через обратный вызов модели) и восстановить ее при необходимости. < /p>
callbacks = [
tf.keras.callbacks.ModelCheckpoint("best_CNN.keras",
save_best_only=True),
]
< /code>
CNN_model = tf.keras.models.load_model("best_CNN.keras")
< /code>
Все пошло хорошо, пока я не внедрил Grad-Cam (для прозрачности решения). Я вставлю первый раздел make_gradcam_heatmap
При обучении модели и создании тепловых карт в одном и том же сеансе, нет проблем, но когда я передаю make_gradcam_heatmap восстановленная модель, лента. Cnn_model.trainable это правда.
Я пытался повернуть обучение каждому слою в True, без результата
Я обучаю CNN по Tensorflow для бинарной классификации и выполнения моего кода в Google Colab.[code]CNN_model = tf.keras.Sequential([ tf.keras.layers.Input(shape=(IMAGE_SIZE, IMAGE_SIZE, 3)), tf.keras.layers.Conv2D(filters=32, kernel_size=3, activation="relu", name='conv1'), tf.keras.layers.Conv2D(filters=64, kernel_size=3, activation="relu", name='conv2'), tf.keras.layers.MaxPooling2D(pool_size=2, name='maxpool1'), tf.keras.layers.Conv2D(filters=128, kernel_size=3, activation="relu", name='conv3'),
], name='CNN_model') < /code> Поскольку модели требуется некоторое время, я подумал, что должен сохранить ее (через обратный вызов модели) и восстановить ее при необходимости. < /p> callbacks = [ tf.keras.callbacks.ModelCheckpoint("best_CNN.keras", save_best_only=True), ] < /code> CNN_model = tf.keras.models.load_model("best_CNN.keras") < /code> Все пошло хорошо, пока я не внедрил Grad-Cam (для прозрачности решения). Я вставлю первый раздел make_gradcam_heatmap [/code]: [code]def make_gradcam_heatmap(img_array, model, last_conv_layer_name):
grads = tape.gradient(logits, last_conv_layer_output) [/code] При обучении модели и создании тепловых карт в одном и том же сеансе, нет проблем, но когда я передаю make_gradcam_heatmap восстановленная модель, лента. Cnn_model.trainable это правда. Я пытался повернуть обучение каждому слою в True, без результата [code]for layer in CNN_model.layers: layer.trainable = True [/code] На случай, если это может помочь, я использую набор данных «Малярия» из наборов данных Tensorflow
Мне было интересно, что делает аргумент output_gradients в функции градиента объекта GradientTape в тензорном потоке. Согласно эта переменная должна содержать «список градиентов, по одному для каждого дифференцируемого элемента цели».
Ее значение по...
Постановка проблемы: я пытался импортировать компоненты Keras, такие как ModelCheckpoint и EarlyStopping, в свой проект TensorFlow, используя следующие операторы импорта:
from tensorflow.keras.callbacks import EarlyStopping ModelCheckpoint