Поиск по сетке с использованием talos: ошибка при передаче списка входов - PullRequest
0 голосов
/ 12 марта 2019

Я использую функциональный API-интерфейс keras.
Я пытаюсь передать список входных данных.
Я пытался выполнить эту проблему :

Но я 'я все еще получаю сообщение об ошибке:

AttributeError: 'list' object has no attribute 'max'

Это моя текущая модель:

def create_model(x_train,y_train, parameters): 

# Multiple Inputs


# 1st input model
frame1 = Input(shape=(9216,))
hidden1 = Dense(30, activation='relu')(frame1)
hidden1= Dropout(0.2)(hidden1)
hidden1 = Dense(50, activation='relu')(hidden1)
#hidden1 = Dense(30, activation='relu')(hidden1)
output1 = Dense(10, activation='softmax')(hidden1) 

# 2nd input model
frame2 = Input(shape=(9216,))
hidden2 = Dense(30, activation='relu')(frame2)
hidden1= Dropout(0.2)(hidden2)
hidden2 = Dense(50, activation='relu')(hidden2)
#hidden2 = Dense(30, activation='relu')(hidden2)
output2 = Dense(10, activation='softmax')(hidden2) 

model = Model(inputs=[x1, x2], 
              outputs=[output1, output2])

#Compile the model
model.compile(optimizer='adam', loss='mse', metrics=['mse'])

history = model.fit(model.fit(x=x_train,y=y_train, 
                              validation_split=0.2,
                              batch_size=parameters['batch_size'],
                              shuffle=False,
                              epochs=20,
                              verbose=1))

return history, model 

# summarize layers
print(model.summary())

Мои параметры для поиска в сетке:

parameters = {'batch_size': [10,20]}

Я получаюошибка, когда я запускаю это:

import talos as ta
t = ta.Scan([train1,train2], 
            [y1,y2],
            params=p,
            model=model)  

AttributeError: 'list' object has no attribute 'max'

Обратите внимание, что мои train1, train2 являются массивами numpy с 9216 значениями.(Изображение 96х96)

1 Ответ

0 голосов
/ 12 июля 2019

Я так понимаю, ты это решил? Если нет, то это потому, что talos ожидает, что x и y будут массивными массивами. Если они являются пустыми массивами, это означает, что talos может вызывать max() для них, в то время как вы не можете вызывать max() в списке, который вы указали для .Scan().

...