Я использую tenorflow2.0 keras2.3 python3 .7 Замораживание Keras в последней партии первой эпохи (не может перейти во вторую эпоху) Я пытаюсь уменьшить количество наборов данных, но это все еще не работает. я пытаюсь найти некоторый ответ через Google и другие программы, но они не работают, вот код
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
import sklearn
import pandas as pd
import os
import sys
import time
import tensorflow as tf
from tensorflow import keras
file_path = os.path.abspath(os.path.dirname('__file__'))
para_num=40
def data_re(file_name):
root=os.path.join(file_path, file_name)
fr = open(root)
lines = fr.readlines()
line_nums = len(lines)
result_mat = np.zeros((line_nums, para_num))
class_label = []
for i in range(line_nums):
line = lines[i].strip()
item_mat = line.split(',')
result_mat[i, :] = item_mat[0: para_num]
class_label.append(item_mat[-1])
fr.close()
return result_mat,class_label
file_train='xx.csv'
file_valid='yy.csv'
x_train,y_train=data_re(file_train)
x_valid,y_valid=data_re(file_valid)
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
x_train_scaled=scaler.fit_transform(x_train)
x_valid_scaled=scaler.fit_transform(x_valid)
y_train=np.array(y_train)
y_valid=np.array(y_valid)
print(x_train_scaled.shape,y_train.shape)
print(x_valid.shape,y_valid.shape)
(24, 40) (24,) (34, 40) (34,)
def build_model(hidden_layers=1, layer_size=40, learning_rate=3e-3):
model = keras.models.Sequential()
model.add(keras.layers.Dense(layer_size, activation='relu', input_shape=x_train.shape[1:]))
for _ in range(hidden_layers - 1):
model.add(keras.layers.Dense(layer_size, activation='relu'))
model.add(keras.layers.Dense(5))
optimizer = keras.optimizers.SGD(learning_rate)
model.compile(loss=tf.keras.losses.sparse_categorical_crossentropy, optimizer=optimizer)
return model
callbacks = [keras.callbacks.EarlyStopping(patience=5, min_delta=1e-20)]
sklearn_model = keras.wrappers.scikit_learn.KerasClassifier(build_model)
history = sklearn_model.fit(x_train_scaled, y_train, epochs=10, validation_data=(x_valid_scaled, y_valid),
callbacks=callbacks)
def plot_learning_curves(history):
pd.DataFrame(history.history).plot(figsize=(8, 5))
plt.grid(True)
plt.gca().set_ylim(0, 1)
plt.show()
from scipy.stats import reciprocal
plot_learning_curves(history)
param_distribution={
"hidden_layers":[1,2,3,4],
"layer_size":np.arange(1,100),
"learning_rate":reciprocal(1e-4,1e-2)
}
from sklearn.model_selection import RandomizedSearchCV
random_search_cv = RandomizedSearchCV(sklearn_model, param_distribution,n_iter=10,cv=3, n_jobs=1)
random_search_cv.fit(x_train_scaled, y_train, epochs=10,validation_data=(x_valid,y_valid),verbose=1,callbacks=callbacks)
print('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')
Поезд на 24 образцах, проверка на 34 образцах. Эпоха 1/10