【发布时间】:2018-10-26 18:19:24
【问题描述】:
为了避免写 500 次:
model.fit(
x[i],
y[i],
batch_size=batch,
epochs=epochs,
validation_split=0.05)
我想通过我正在拟合的数据集数量循环这个。但是,当我这样做时,第一次拟合的指标如下:
loss: nan - acc: 7.4635e-04 - val_loss: nan - val_acc: 0.0000e+00
之后的每一次运行,其指标都是:
loss: nan - acc: 0.0000e+00 - val_loss: nan - val_acc: 0.0000e+00
现在我不认为 val_loss 和 val_acc 为 0 并且 nan 很好,但至少有 acc 但在第一次拟合之后,所有指标基本上都为空。
编辑:
这是我格式化数据的代码。 x[i] 是所有数据,其中x[0] 将是第一个完整数据集。
x_train = [None] * len(os.listdir('/'))
y_train = [None] * len(os.listdir('/'))
x_test = [None] * len(os.listdir('/'))
y_test = [None] * len(os.listdir('/'))
def format_data(data, seq_len, normalise_window):
sequence_length = seq_len + 1
result = []
for index in range(len(data) - sequence_length):
result.append(data[index: index + sequence_length])
if normalise_window:
result = normalise_windows(result)
result = np.array(result)
row = round(0.85 * result.shape[0])
train = result[:int(row), :]
np.random.shuffle(train)
x_train = train[:, :-1]
y_train = train[:, -1]
x_test = result[int(row):, :-1]
y_test = result[int(row):, -1]
x_train = np.reshape(x_train, (x_train.shape[0], x_train.shape[1], 1))
x_test = np.reshape(x_test, (x_test.shape[0], x_test.shape[1], 1))
return [x_train, y_train, x_test, y_test]
for i, filename in enumerate(os.listdir('/directory')):
try:
print"starting file :",filename
data = pd.read_csv('directory/{0}'.format(filename), index_col=0, header=0)
data['open'].replace('nan',np.nan)
data.dropna()
new = data['open'].tolist()
x_train[i], y_train[i], x_test[i], y_test[i] = format_data(new, seq_len, True)
except:
pass
for i in range(len(x_train)):
print"starting fit :",i,"of length",len(x_train)
try:
model.fit(
x_train[i],
y_train[i],
batch_size=batch,
epochs=epochs,
validation_split=0.05)
except:
pass
我怎样才能实现我想要做的事情?
【问题讨论】:
-
你为什么要循环 over fit 函数?
x的类型是什么? -
nan损失可能发生在很多事情上,包括您的数据、模型、激活、目标数据以及您的预处理方式。如果您恰好适合x[0]和y[0],是否会发生这种情况? -
@ZiyadEdher x 是一个顺序数据集。我想循环它,所以我不必复制和粘贴 500 个 fit 函数。
-
@nuric 第一次 (
x[0]) 它给了我这些指标;loss: nan - acc: 7.4635e-04 - val_loss: nan - val_acc: 0.0000e+00如操作中所述 -
x[0]代表什么?第一个数据点还是数据点列表?
标签: python tensorflow machine-learning keras models