Я использовал обратные вызовы тенорарта keras, и это работало довольно хорошо. На этой неделе я написал новый код, и обратный вызов больше не хранит скаляры, даже когда я указываю метрики в операторе model.compile ().
По умолчанию, даже без указания метрик, он использовался для захвата потерь после каждой итерации в предыдущем коде.
Наконец, чтобы проверить, есть ли проблема с установкой тензорной доски, я попытался снова запустить старый код, и он, кажется, работает нормально, но новый код не работает. Единственная разница между старым и новым кодом заключается в том, что я использовал генератор данных в новом коде и использовал model.fit_generator () вместо model.fit ().
Я попытался переустановить тензорную доску, но это, похоже, не решило проблему.
Старый код -
def train(X,Y,val_split,checkpoint):
model=segmenter()
initial_epoch=0
if checkpoint is not None:
model.load_weights(checkpoint, by_name=True)
initial_epoch=int(re.search(r'\d+', os.path.basename(checkpoint)).group())
adam=Adam(lr=0.00001)
model.compile(optimizer=adam,loss='mean_squared_error')
filepath="checkpoint-{epoch:06d}.hdf5_50_50"
checkpoint = ModelCheckpoint(filepath, monitor='loss', verbose=1, save_best_only=True)
#for visualisation
visualisation= TensorBoard(log_dir='./logs', histogram_freq=0, batch_size=BATCH_SIZE, write_graph=True, write_grads=False, write_images=False, embeddings_freq=0, embeddings_layer_names=None, embeddings_metadata=None)
callbacks_list = [checkpoint,visualisation]
model.fit(x=X,y=Y,epochs=EPOCHS,batch_size=BATCH_SIZE, validation_split=val_split,callbacks=callbacks_list, shuffle=True, initial_epoch=initial_epoch )
Новый код -
def train(namelistfile,val_split=0.1,checkpoint=None,batch_size=1):
#getting file names
with open(namelistfile,'r') as f:
namelist=[line.replace('\n','') for line in f ]
# Generators
split=int((1-val_split)*len(namelist))
training_generator = mygenerator(namelist=namelist[:split], batch_size=batch_size)
validation_generator = mygenerator(namelist=namelist[split:], batch_size=batch_size)
# Training
model=autoencoder()
model.summary()
initial_epoch=0
if checkpoint is not None:
model.load_weights(checkpoint,by_name=True)
initial_epoch=int(re.search(r'\d+', os.path.basename(checkpoint)).group())
adam=Adam(lr=0.001)
model.compile(optimizer=adam,loss='mean_squared_error',metrics=['mean_squared_error'])
filepath="checkpoint-{epoch:06d}.hdf5"
checkpoint = ModelCheckpoint(filepath, monitor='loss', verbose=1, save_best_only=True)
#for visualisation
visualisation= TensorBoard(log_dir='./logs', histogram_freq=0, batch_size=batch_size, write_graph=True, write_grads=False, write_images=False, embeddings_freq=0, embeddings_layer_names=None, embeddings_metadata=None)
callbacks_list = [checkpoint,visualisation]
model.fit_generator(generator=training_generator,validation_data=validation_generator,epochs=EPOCHS,callbacks=callbacks_list, initial_epoch= initial_epoch, use_multiprocessing=True,workers=6)
Ниже приведены результаты для
tensorboard --inspect --logdir=logs
Для старого кода
======================================================================
Processing event files... (this can take a few minutes)
======================================================================
Found event files in:
logs
These tags are in logs:
audio -
histograms -
images -
scalars
loss
val_loss
tensor -
======================================================================
Event statistics for logs:
audio -
graph
first_step 0
last_step 0
max_step 0
min_step 0
num_steps 1
outoforder_steps []
histograms -
images -
scalars
first_step 301
last_step 301
max_step 301
min_step 301
num_steps 1
outoforder_steps []
sessionlog:checkpoint -
sessionlog:start -
sessionlog:stop -
tensor -
======================================================================
Для нового кода
======================================================================
Processing event files... (this can take a few minutes)
======================================================================
Found event files in:
logs
These tags are in logs:
audio -
histograms -
images -
scalars -
tensor -
======================================================================
Event statistics for logs:
audio -
graph
first_step 0
last_step 0
max_step 0
min_step 0
num_steps 1
outoforder_steps []
histograms -
images -
scalars -
sessionlog:checkpoint -
sessionlog:start -
sessionlog:stop -
tensor -
======================================================================
Тензорборд не дает ошибок. Кажется, я что-то упустил, и с моим кодом возникла проблема Может кто-нибудь, пожалуйста, помогите мне с этим, поскольку трудно представить без тензорной доски.
TensorBoard 1.5.1
Keras 2.1.2
Tesorflow 1.4.1
Python 2.7.6