Ошибка типа: не может выполнить уменьшение с гибким типом Keras - PullRequest
0 голосов
/ 23 мая 2019

У меня есть определение модели, определенное в файле json, как показано ниже

{
    "model": "Sequential",
    "layers": [
        {
            "L1": "Conv2D(filters = '8', kernel_size=(3,3), strides=(1, 1), padding='valid', data_format='channels_last', activation='relu', use_bias=True, kernel_initializer='zeros', bias_initializer='zeros', kernel_regularizer=regularizers.l1(0.), bias_regularizer=regularizers.l1(0.), activity_regularizer=regularizers.l1(0.), kernel_constraint=max_norm(2.), bias_constraint=max_norm(2.), input_shape=(28,28,1))",
            "L2": "Conv2D(filters = '8', kernel_size=(3,3), strides=(1, 1), padding='valid', data_format='channels_last', activation='relu', use_bias=True, kernel_initializer='zeros', bias_initializer='zeros', kernel_regularizer=regularizers.l1(0.), bias_regularizer=regularizers.l1(0.), activity_regularizer=regularizers.l1(0.), kernel_constraint=max_norm(2.), bias_constraint=max_norm(2.))",
            "L3": "Flatten()",
            "L4": "Dense(10, activation='softmax', use_bias=True, kernel_initializer='zeros', bias_initializer='zeros', kernel_regularizer='regularizers.l1(0.)', bias_regularizer='regularizers.l1(0.)', activity_regularizer='regularizers.l1(0.)', kernel_constraint=max_norm(2.), bias_constraint=max_norm(2.))"
        }
    ]
}

Когда я загружаю его в модель, он выдает следующую ошибку:

TypeError: cannot perform reduce with flexible type

Для загрузки модели из json у меня есть следующий код

with open('model_0.json','r') as fb:
    con = json.load(fb)

print(con['layers'][0]['L1'])

model = Sequential()
model.add(eval(con['layers'][0]['L1']))
import pdb; pdb.set_trace()
model.add(eval(con['layers'][0]['L2']))
model.add(eval(con['layers'][0]['L3']))
model.add(eval(con['layers'][0]['L4']))

У кого-нибудь есть идеи?

1 Ответ

1 голос
/ 23 мая 2019

Ваши данные не должны быть в строковом формате.Если он в строковом формате, измените его на числовой тип.

import numpy as np

np.array(your_array).astype(np.float)
...