我将运行一些较大的模型,并尝试中间结果。
因此,我尝试在每个时期之后使用检查点来保存最佳模型。
这是我的代码:
model = Sequential()
model.add(LSTM(700, input_shape=(X_modified.shape[1], X_modified.shape[2]), return_sequences=True))
model.add(Dropout(0.2))
model.add(LSTM(700, return_sequences=True))
model.add(Dropout(0.2))
model.add(LSTM(700))
model.add(Dropout(0.2))
model.add(Dense(Y_modified.shape[1], activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
# Save the checkpoint in the /output folder
filepath = "output/text-gen-best.hdf5"
# Keep only a single checkpoint, the best over test accuracy.
checkpoint = ModelCheckpoint(filepath,
monitor='val_acc',
verbose=1,
save_best_only=True,
mode='max')
model.fit(X_modified, Y_modified, epochs=100, batch_size=50, callbacks=[checkpoint])
Run Code Online (Sandbox Code Playgroud)
但是在第一个时期之后,我仍然收到警告:
/usr/local/lib/python3.6/site-packages/keras/callbacks.py:432: RuntimeWarning: Can save best model only with val_acc available, skipping.
'skipping.' % (self.monitor), RuntimeWarning)
Run Code Online (Sandbox Code Playgroud)
要添加metrics=['accuracy']到模型中还存在其他SO问题(例如,在使用预训练的VGG16模型时无法节省重量)的解决方案,但此处仍然存在错误。
我想给字符串着色,但每个字符都不同。我有一个包含文本的数组和一个值在 -1 到 1 之间的数组,其中 -1 应该代表“红色”,1 应该代表“绿色”。0 可以是白色、黄色或介于红色和绿色之间的褪色。
每个角色都应该有与得分有关的颜色。
数据如下:
array([['a', 'c', 'm', 'e', 't', 'e', 'l', 'l', 'm', 'e'],
['0.1716490432811229', '0.062389299621661884',
'0.26545182258229466', '-0.07999088246625552',
'-0.4499291603930515', '-0.7465421931327068', '-0.812006046307664',
'-0.8443500193245104', '-0.865253671942029','-0.8697487071105282',]],
dtype='<U32')
Run Code Online (Sandbox Code Playgroud)
我能够生成颜色:
import matplotlib as mpl
import matplotlib.cm as cm
norm = mpl.colors.Normalize(vmin=-1, vmax=1)
cmap = cm.RdYlGn
x = 0.3
m = cm.ScalarMappable(norm=norm, cmap=cmap)
#print(m.to_rgba(x))
color = m.to_rgba(ws)
color
Run Code Online (Sandbox Code Playgroud)
结果如下所示(r、g、b、a):
array([[ 0.87435602, 0.94709727, 0.57708574, 1. ],
[ 0.9561707 , 0.98154556, 0.68904268, 1. ],
[ 0.83529412, 0.93048827, 0.5349481 , 1. ], …Run Code Online (Sandbox Code Playgroud)