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>
Da es eine Weile dauert, bis das Modell trainiert, sollte ich es speichern (über den Modellcheckpoint -Rückruf) und bei Bedarf wiederherstellen. < /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>
Es ging in Ordnung, bis ich Grad-CAM implementiert habe (zur Entscheidungstransparenz). Ich werde den ersten Abschnitt von make_gradcam_heatmap
Beim Training des Modells und beim Erstellen von Heatmaps in derselben Sitzung gibt es kein Problem, aber wenn ich make_gradcam_heatmap ein restauriertes Modell, Tape.gradient (Logits, last_conv_layer_output) zurückgibt. Cnn_model.trainable ist wahr.
Ich trainiere einen CNN auf Tensorflow für binäre Klassifizierung und führt meinen Code in Google Colab aus.[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> Da es eine Weile dauert, bis das Modell trainiert, sollte ich es speichern (über den Modellcheckpoint -Rückruf) und bei Bedarf wiederherstellen. < /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> Es ging in Ordnung, bis ich Grad-CAM implementiert habe (zur Entscheidungstransparenz). Ich werde den ersten Abschnitt von make_gradcam_heatmap [/code]: einfügen[code]def make_gradcam_heatmap(img_array, model, last_conv_layer_name):
grads = tape.gradient(logits, last_conv_layer_output) [/code] Beim Training des Modells und beim Erstellen von Heatmaps in derselben Sitzung gibt es kein Problem, aber wenn ich make_gradcam_heatmap ein restauriertes Modell, Tape.gradient (Logits, last_conv_layer_output) zurückgibt. Cnn_model.trainable ist wahr.[code]for layer in CNN_model.layers: layer.trainable = True [/code] Für den Fall, dass es hilfreich ist, verwende ich Datensatz 'Malaria' aus TensorFlow -Datensätzen
Ich arbeite an meinem Universitätsprojekt. Eine seiner Aufgaben ist es, Pytorch in Tensorflow und Tensorflow in TensorFlow Lite in Tensorflow umzuwandeln. Ich habe Pytorch erfolgreich mit Hilfe von...