Как сохранить model.get_weight в виде массива в CSV? - PullRequest
0 голосов
/ 18 июня 2019

Я новичок, начинающий учиться кодировать в бэкэнде Keras Tensorflow.Я использую Python 2.7

У меня есть модель в керасе, и после тренировки я хочу проверить свой вес.

Отредактировано

# fix random seed for reproducibility (split training and validation set)
seed = 7
np.random.seed(seed)

# load data
(X_train, y_train), (X_test, y_test) = mnist.load_data()

# reshape to be [samples][pixels][width][height]
X_train = X_train.reshape(X_train.shape[0], 1, 28, 28).astype('float32')
X_test = X_test.reshape(X_test.shape[0], 1, 28, 28).astype('float32')

# normalize inputs from 0-255 to 0-1
X_train = X_train / 255
X_test = X_test / 255

# one hot encode outputs (label encoding)
y_train = np_utils.to_categorical(y_train)
y_test = np_utils.to_categorical(y_test)
num_classes = y_test.shape[1]

def tempsigmoid(x, temp=0.5):
    return K.sigmoid(x/temp)


def baseline_model():
    # create model
    model = Sequential()
    model.add(Conv2D(32, (5, 5), input_shape=(1, 28, 28), activation='relu'))
    #model.add(Dense, input_shape = (1,28,28), Activation='relu')
    model.add(MaxPooling2D(pool_size=(2, 2)))
    model.add(Dropout(0.2))
    model.add(Flatten())
    model.add(Dense(100, activation='relu'))
    model.add(Dense(num_classes, activation=tempsigmoid))

    # Compile model
    model.compile(loss='mae', optimizer=SGD(lr=0.1), metrics=['accuracy'])
    return model

    # build the model
model = baseline_model()

earlystopper = EarlyStopping(monitor='val_loss', min_delta=0.1, patience=0, verbose=2, mode='auto')

# Fit the model
model.fit(X_train, y_train, validation_data=(X_test, y_test), epochs=5, batch_size=200, verbose=2, callbacks=[earlystopper])

# Final evaluation of the model
scores = model.evaluate(X_test, y_test, verbose=0)
print("CNN Error: %.2f%%" % (100-scores[1]*100))
# print("Metrics(Test loss & Test Accuracy): ")
print(scores)

weight = model.get_weights()
print(weight)

Я получаю вес в массиве, как на картинке.Как я могу сохранить весовой массив в CSV-файл?

массив веса

Я попытался с model.save_weight (), и у меня есть выходной файл в формате h5, но когда я хочу открыть его с NumPy, его единственное отображениемаленькая часть этого.Я думаю, когда я смогу сохранить его в формате CSV, я получу полное отображение данных.

Я пытался преобразовать H5 в CSV с NumPy Python, как на картинке

# to save weight after output
model.save_weights('Result/w_output.h5')

Пытался отобразить полный массив с numpy

Ответы [ 2 ]

0 голосов
/ 19 июня 2019

Мне удалось сохранить вес массива в CSV с помощью этой кодировки

weight = model.get_weights()
np.savetxt('weight.csv' , weight , fmt='%s', delimiter=',')
0 голосов
/ 18 июня 2019

Полагаю, вы хотите, чтобы каждый список чисел находился в отдельной строке. Если это так, вам нужно изменить вес следующим образом: weight = [[data1, data2, data3 ...], [data11, data12, data13 ...] ...]. функции для реформирования списка

Тогда вам просто нужно написать / добавить его в CSV-файл. Вы можете использовать библиотеку панд или csv.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...