[PYTHON] Kolbengrundierung Memo

Aidemy 2020/10/4

Einführung

Hallo, es ist ja! Ich bin eine knusprige Literaturschule, aber ich war an den Möglichkeiten der KI interessiert, also ging ich zur AI-spezialisierten Schule "Aidemy", um zu studieren. Ich möchte das hier gewonnene Wissen mit Ihnen teilen und habe es in Qiita zusammengefasst. Ich freue mich sehr, dass viele Menschen den vorherigen zusammenfassenden Artikel gelesen haben. Vielen Dank! Dieses Mal werde ich eine Einführung in Flask Memo veröffentlichen. Freut mich, dich kennenzulernen.

Über Flask

Was ist eine Flasche?

-Flask ist ein Python-Webanwendungsframework. Ähnlich wie Rails in Ruby. ・ Der Kolben wird wie folgt verwendet.

#Flaschenpaket importieren
from flask import Flask
#Erstellen einer Instanz der Flask-Klasse
app=Flask(__name__)
#Definieren Sie die Funktion beim Zugriff auf die URL
@app.route('/')
def hello_world():
    return "Hello World"
#Nur ausführen, wenn der Code direkt ausgeführt wird.
if __name__=='__main__':
    app.run()

[email protected] ("URL") __ dient zum Ausführen der danach definierten Funktion beim Zugriff auf die URL. -Der name wird später beschrieben.

Was ist name

-Name ist eine Variable, die automatisch für jede Datei definiert wird, und __der Dateiname wird gespeichert. __ __

Implementierung einer handschriftlichen App zur Zeichenunterscheidung

Codebeschreibung

@app.route('/')
def hello_world():
    return render_template('index.html')

-HTML kann beim Zugriff auf die URL von @ app.route () mit __render_template ('HTML-Datei') __ wiedergegeben werden. -Die HTML-Datei muss zu diesem Zeitpunkt im Ordner templates abgelegt werden.

Rauer Fluss

#Listen Sie zunächst die zu klassifizierenden Klassen auf
classes = ["0","1","2","3","4","5","6","7","8","9","10"]
#Angeben der Bildgröße
image_size = 28
#Geben Sie den Ordner an, in dem das hochgeladene Bild gespeichert werden soll, und geben Sie die Erweiterung an, die das Hochladen ermöglichen soll
UPLOAD_FOLDER = "uploads"
ALLOWED_EXTENSIONS = set(['png','jpg','jpeg'])

#Instanziierung der Kolbenklasse
app = Flask(__name__)

#Beurteilung der Erweiterung des hochgeladenen Bildes
def allowed_file(filename):
    return '.' in filename and filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS

#Modell laden
model = load_model('./model.h5')

-Die Erweiterungsurteile "'.' In Dateiname" und "Dateiname.rsplit ('.', 1) [1] .lower () in ALLOWED_EXTENSIONS" sind bedingte Ausdrücke. Das Ergebnis der Richtigkeitsbeurteilung wird umgehend zurückgegeben.

Verarbeiten Sie hochgeladene Bilddateien auf der HTML-Seite

・ Auf der HTML-Seite erklärte ich, dass "・ Eingabeformular: __ \ \ </ form> __ (Bild mit Methode =" POST "hochladen)", aber hier werden die im Eingabeformular eingegebenen Daten empfangen. Siehe den Ablauf der Ausführung der Funktion.

@app.route('/', methods=['GET', 'POST'])
def upload_file():
    if request.method == 'POST':

-Wenn Sie \

auf der HTML-Seite und dann __ "wenn request.method == 'POST'" __ in Flask festlegen, wird es danach für die hochgeladene Datei definiert. Funktionen usw. können angewendet werden.

-Auch wenn die Datei nicht im empfangenen 'POST' gespeichert ist oder wenn der Dateiname überhaupt nicht angehängt ist, ist das Lernen durch das Modell nicht möglich. In diesem Fall leiten Sie auf die ursprüngliche Seite um.

#Was tun, wenn die Datei nicht vorhanden ist?
  if 'file' not in request.files:
            flash('Keine Datei')
            return redirect(request.url)
        file = request.files['file']
#Verarbeitung, wenn der Dateiname leer ist
        if file.filename == '':
            flash('Keine Datei')
            return redirect(request.url)
  • Stellen Sie anschließend fest, ob die Erweiterung für die zuvor definierte "allow_file ()" geeignet ist, und speichern Sie sie mit "file.save".

Laden Sie das gespeicherte Bild und wenden Sie das Modell an

#Lesen Sie das empfangene Bild und konvertieren Sie es in das np-Format
            img = image.load_img(filepath, grayscale=True, target_size=(image_size,image_size))
            img = image.img_to_array(img)
            data = np.array([img])
#Übergeben Sie die transformierten Daten zur Vorhersage an das Modell
            result = model.predict(data)[0]
            predicted = result.argmax()
            pred_answer = "das ist" + classes[predicted] + "ist"
  • Durch image.load_img (Bild-URL, target_size = (vertikal, horizontal)) __ wird das Bild gleichzeitig geladen und in der Größe geändert. Graustufen = Wahr bedeutet, dass das Lesen in Schwarzweiß erfolgt. - Image.img_to_array (image) __ macht das Image zu einem NumPy-Array. Außerdem listet __np.array ([img]) __ img auf. -Der Grund für die Konvertierung auf diese Weise ist, dass nur eine Liste von NumPy vom Modell an die Vorhersage übergeben werden kann (model.predict ()).
  return render_template("index.html",answer=pred_answer)
  • Durch Einstellen von __render_template ("HTML-Datei", Antwort = Vorhersageergebnis) __ kann das Vorhersageergebnis an {{}} der HTML-Datei übergeben werden.

Bereitstellen

-Deploying bedeutet, dass die erstellte Anwendung über Heroku veröffentlicht wird.

Recommended Posts

Kolbengrundierung Memo
Flask Grundnotiz
Kolbeneinführung - Blueprint-Anwendungsnotiz
Flasche
Flasche
Hallo Welt mit Flasche [Passendes Memo]
gzip memo
Himbeer-Pi-Memo
Pandas Memo
HackerRank-Memo
Erste Flasche
Python-Memo
Python-Memo
Graphen-Memo
pyenv memo
Matplotlib-Memo
pytest memo
sed memo
Python-Memo
Installieren Sie Memo
BeautifulSoup4 Memo
networkx memo
Python-Memo
Kater Memo
Befehlsnotiz
Generator Memo.
psycopg2 memo
Python-Memo
SSH-Memo
Memo zum Senden und Empfangen von Bildern mit Python (Flask)
Notiz: rtl8812
Pandas Memo
Shell Memo
Python-Memo
Pycharm-Memo