gpt4 book ai didi

python - 如何将 Keras 模型摘要写入数据框?

转载 作者:行者123 更新时间:2023-12-01 08:16:01 24 4
gpt4 key购买 nike

首先,我会说这不是正确运行 Keras 模型的方法。应该有一个训练集和测试集。该作业严格是为了培养直觉,因此没有测试集。

我正在通过神经元、激活函数、批处理和层的几种排列来运行模型。这是我正在使用的代码。

from sklearn.datasets import make_classification
X1, y1 = make_classification(n_samples=90000, n_features=17, n_informative=6, n_redundant=0, n_repeated=0, n_classes=8, n_clusters_per_class=3, weights=None, flip_y=.3, class_sep=.4, hypercube=False, shift=3, scale=2, shuffle=True, random_state=840780)

class_num = 8

# ----------------------------------------------------------------

import itertools

final_param_list = []

# param_list_gen order is units, activation function, batch size, layers
param_list_gen = [[10, 20, 50], ["sigmoid", "relu", "LeakyReLU"], [8, 16, 32], [1, 2]]
for element in itertools.product(*param_list_gen):
final_param_list.append(element)

# --------------------------------------------------------------------------------------

from keras.models import Sequential
from keras.layers import Dense, Dropout, Activation, Flatten, LeakyReLU
from keras.callbacks import History
import tensorflow as tf
import numpy as np
import pandas as pd

# --------------------------------------------------------------------------------------



# -------- Model 1 - permutations of neurons, activation funtions batch size and layers -------- #

for param in final_param_list:
q2model1 = Sequential()

# hidden layer 1
q2model1.add(Dense(param[0]))
if param[1] != 'LeakyReLU':
q2model1.add(Activation(param[1]))
else:
q2model1.add(LeakyReLU(alpha=0.1))

if param[3] == 2:
# hidden layer 2
q2model1.add(Dense(param[0]))
if param[1] != 'LeakyReLU':
q2model1.add(Activation(param[1]))
else:
q2model1.add(LeakyReLU(alpha=0.1))

# output layer
q2model1.add(Dense(class_num, activation='softmax'))

q2model1.compile(loss='sparse_categorical_crossentropy', optimizer='RMSProp', metrics=['accuracy'])

# Step 3: Fit the model

history = q2model1.fit(X1, y1, epochs=20)

看起来工作正常。现在,我的任务是输出每个时期的准确性,包括神经元、激活函数、批处理、层

现在,这给了我每个时期的所有准确性

print(history.history['acc'])

这给了我参数

print(param)

这给了我一个总结,尽管我不确定这是否是最好的方法

print(q2model1.summary())

有没有办法将每个纪元打印到 pandas 数据帧,使其看起来像这样?

阶段(列表索引 + 1)| # 神经元 |激活函数 |批量大小 |层 | Acc epoch1 | Acc 纪元2 | …… | Acc epoch20

就是这样。如果您发现模型本身有任何明显错误,或者我缺少一些关键代码,请告诉我

最佳答案

您可以尝试:

import pandas as pd

# assuming you stored your model.fit results in a 'history' variable:
history = model.fit(x_train, y_train, epochs=20)

# convert the history.history dictionary to a pandas dataframe:
hist_df = pd.DataFrame(history.history)

# checkout result with print e.g.:
print(hist_df)

# or the describe() method:
hist_df.describe()

Keras 还有一个 CSVLogger:https://keras.io/callbacks/#csvlogger这可能会引起兴趣。

关于python - 如何将 Keras 模型摘要写入数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54975952/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com