Instructions to use OneclickAI/CNN_test_Model with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Keras
How to use OneclickAI/CNN_test_Model with Keras:
# Available backend options are: "jax", "torch", "tensorflow". import os os.environ["KERAS_BACKEND"] = "jax" import keras model = keras.saving.load_model("hf://OneclickAI/CNN_test_Model") - Notebooks
- Google Colab
- Kaggle
| import numpy as np | |
| import tensorflow as tf | |
| from tensorflow import keras | |
| from keras import layers | |
| # Keras λΌμ΄λΈλ¬λ¦¬λ₯Ό ν΅ν΄ MNIST λ°μ΄ν°μ μ μμ½κ² λΆλ¬μ΅λλ€. | |
| (x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data() | |
| # μ κ·ν: ν½μ κ°μ λ²μλ₯Ό 0~255μμ 0~1 μ¬μ΄λ‘ μ‘°μ νμ¬ νμ΅ μμ μ± λ° μλλ₯Ό λμ λλ€. | |
| x_train = x_train.astype("float32") / 255.0 | |
| x_test = x_test.astype("float32") / 255.0 | |
| # μ±λ μ°¨μ μΆκ°: νλ°± μ΄λ―Έμ§(μ±λ 1)μ μ°¨μμ λͺ μμ μΌλ‘ μΆκ°ν©λλ€. | |
| x_train = np.expand_dims(x_train, -1) | |
| x_test = np.expand_dims(x_test, -1) | |
| # λ μ΄λΈ μ-ν« μΈμ½λ©: μ«μ '5'λ₯Ό [0,0,0,0,0,1,0,0,0,0] ννμ 벑ν°λ‘ λ³νν©λλ€. | |
| num_classes = 10 | |
| y_train = keras.utils.to_categorical(y_train, num_classes) | |
| y_test = keras.utils.to_categorical(y_test, num_classes) | |
| model = keras.Sequential([ | |
| keras.Input(shape=(28, 28, 1)), # μ λ ₯ λ μ΄μ΄ | |
| layers.Conv2D(32, kernel_size=(3, 3), activation="relu"), | |
| layers.MaxPooling2D(pool_size=(2, 2)), | |
| layers.Conv2D(64, kernel_size=(3, 3), activation="relu"), | |
| layers.MaxPooling2D(pool_size=(2, 2)), | |
| layers.Flatten(), | |
| layers.Dropout(0.5), | |
| layers.Dense(num_classes, activation="softmax") | |
| ]) | |
| model.compile( | |
| # μμ€ ν¨μ(Loss Function): λͺ¨λΈμ μμΈ‘μ΄ μ λ΅κ³Ό μΌλ§λ λ€λ₯Έμ§ μΈ‘μ ν©λλ€. | |
| loss="categorical_crossentropy", | |
| # μ΅ν°λ§μ΄μ (Optimizer): μμ€μ μ΅μννκΈ° μν΄ λͺ¨λΈμ κ°μ€μΉλ₯Ό μ λ°μ΄νΈνλ λ°©λ²μ λλ€. | |
| optimizer="adam", | |
| # νκ°μ§ν(Metrics): νλ ¨ κ³Όμ μ λͺ¨λν°λ§ν μ§νλ‘, μ νλλ₯Ό μ¬μ©ν©λλ€. | |
| metrics=["accuracy"] | |
| ) | |
| batch_size = 128 | |
| epochs = 15 | |
| # λͺ¨λΈ νμ΅ μ€ν | |
| history = model.fit( | |
| x_train, y_train, | |
| batch_size=batch_size, | |
| epochs=epochs, | |
| validation_data=(x_test, y_test) | |
| ) | |
| # νμ΅ μλ£ ν μ΅μ’ μ±λ₯ νκ° | |
| score = model.evaluate(x_test, y_test, verbose=0) | |
| print(f"\nTest loss: {score[0]:.4f}") | |
| print(f"Test accuracy: {score[1]:.4f}") | |
| # λͺ¨λΈμ ꡬ쑰, κ°μ€μΉ, νμ΅ μ€μ μ λͺ¨λ '.keras' νμΌ νλμ μ μ₯ν©λλ€. | |
| model.save("my_keras_model.keras") | |
| print("\nModel saved to my_keras_model.keras") | |
| # κ²°κ³Ό νμΈ | |
| import matplotlib.pyplot as plt | |
| data = x_test[2] | |
| plt.imshow(data) | |
| logits = model.predict(np.expand_dims(data,0)) | |
| result = np.argmax(logits) | |
| print(result) |