[PYTHON] [Hyperas] Typ Fehler: Das Auflösen des Funktionsobjekts ist nicht abonnierbar

Einführung

Ich selbst hatte einen peinlichen Fehler und hoffe, dass er jemandem hilft.

TypeError: 'function' object is not subscriptable

Dieser Fehler wird als Problem mit dem Funktionsteil angesehen.
Um dieses Problem zu beheben, schauen wir uns noch einmal an, was wir im Hyperas-Modul hinzugefügt haben.

Umgebung

Modulimport

from tensorflow.keras import layers
from tensorflow.keras import Input
from hyperas.distributions import choice
from hyperas.distributions import uniform

Before

def create_model(X_train, y_train, X_test, y_test):
    input_tensor = Input(shape=(X_train.shape[1],))
    x = layers.Dense({{choice[128, 256, 512]}}, activation="relu", kernel_regularizer = regularizers.l2({{choice[0.01, 0.001, 0.0001]}}))(input_tensor)
    x = layers.Dropout({{uniform(0, 1)}})(x)
        :

Weißt du was daran falsch ist?
Als nächstes werde ich After mit dem geänderten Code anzeigen.

After

def create_model(X_train, y_train, X_test, y_test):
    input_tensor = Input(shape=(X_train.shape[1],))
    x = layers.Dense({{choice([128, 256, 512])}}, activation="relu", kernel_regularizer = regularizers.l2({{choice([0.01, 0.001, 0.0001])}}))(input_tensor)
    x = layers.Dropout({{uniform(0, 1)}})(x)
        :

Beachten Sie, wie Sie mit der Auswahl von {{}} umgehen.

{{choice[128, 256, 512]}}
{{choice([128, 256, 512])}}

Wenn Sie der Auswahl nicht wie folgt hinzufügen (), wird der obige Fehler angezeigt.
Dieser Fehler

TypeError                                 Traceback (most recent call last)
<ipython-input-55-c060629fd2f2> in <module>
      7         max_evals=5,
      8         trials=trials,
----> 9         notebook_name="sample_notebook"
     10 )
     11 

Auf diese Weise wird der Fehler in [optim.minimize ()] in der Hauptfunktion angezeigt, sodass es schwierig ist, das Problem zu identifizieren.

Es ist ein Fehler, der durch einen sehr einfachen Fehler verursacht wurde, aber ich konnte nicht herausfinden, was falsch war, indem ich den Fehlercode las.

Wenn Sie einen ähnlichen Fehler wie meinen erhalten, sollten Sie zunächst überprüfen, ob die Funktion korrekt geschrieben ist.

Referenzseite

【GitHub】TypeError: 'function' object is not subscriptable

Wie schreibe ich in Keras

Der folgende Quellcode entspricht dem Quellcode für After.

(Da das in das Modell zu konvertierende Teil nicht angezeigt wird, kann nicht gesagt werden, dass es genau dasselbe ist. Bitte beachten Sie jedoch, dass die Konfiguration des Modells dieselbe ist.)

from tensorflow.keras import models
from tensorflow.keras import layers
from tensorflow.keras import regularizers

def create_model(X_train, y_train, X_test, y_test):
    model = Sequential()
    model.add(layers.Dense({{choice([128, 256, 512])}}, activation="relu", kernel_regularizer = regularizers.l2({{choice([0.01, 0.001, 0.0001])}}), input_shape=(X_train.shape[1],))
    model.add(layers.Dropout({{uniform(0, 1)}})
           :

Recommended Posts

[Hyperas] Typ Fehler: Das Auflösen des Funktionsobjekts ist nicht abonnierbar
TypeError: Das Objekt 'int' kann nicht tiefgestellt werden
[Django-Fehler] Das Objekt 'RenameAttributes' ist nicht iterierbar
[Python] Namensfehler: name'urlparse 'ist nicht definiert
Wenn das ausgewählte Objekt in bpy.context.selected_objects nicht zurückgegeben wird
Python-Memo mit Perl - Wörterbuchtyp (Groß- / Kleinschreibung ungültig)
Wenn "FEHLER: HTTP wird nicht unterstützt" in mpsyt angezeigt wird