Керас замерзает в первую эпоху (не может перейти во вторую эпоху) - PullRequest
0 голосов
/ 24 марта 2020

Я использую 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

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