关键词:
【中文标题】如何在 Tensorflow 2 中的模型训练期间捕获任何异常【英文标题】:How to catch any Exception during Model Training in Tensorflow 2 【发布时间】:2020-02-29 16:07:10 【问题描述】:我正在使用 Tensorflow 训练一个 Unet 模型。如果我传递给模型进行训练的任何图像存在问题,则会引发异常。有时这可能会在训练后的一两个小时内发生。将来是否有可能捕获任何此类异常,以便我的模型可以继续下一张图像并恢复训练?我尝试将try/catch
块添加到如下所示的process_path
函数中,但这没有效果...
def process_path(filePath):
# catching exceptions here has no effect
parts = tf.strings.split(filePath, '/')
fileName = parts[-1]
parts = tf.strings.split(fileName, '.')
prefix = tf.convert_to_tensor(maskDir, dtype=tf.string)
suffix = tf.convert_to_tensor("-mask.png", dtype=tf.string)
maskFileName = tf.strings.join((parts[-2], suffix))
maskPath = tf.strings.join((prefix, maskFileName), separator='/')
# load the raw data from the file as a string
img = tf.io.read_file(filePath)
img = decode_img(img)
mask = tf.io.read_file(maskPath)
oneHot = decodeMask(mask)
img.set_shape([256, 256, 3])
oneHot.set_shape([256, 256, 10])
return img, oneHot
trainSize = int(0.7 * DATASET_SIZE)
validSize = int(0.3 * DATASET_SIZE)
batchSize = 32
allDataSet = tf.data.Dataset.list_files(str(imageDir + "/*"))
trainDataSet = allDataSet.take(trainSize)
trainDataSet = trainDataSet.shuffle(1000).repeat()
trainDataSet = trainDataSet.map(process_path, num_parallel_calls=tf.data.experimental.AUTOTUNE)
trainDataSet = trainDataSet.batch(batchSize)
trainDataSet = trainDataSet.prefetch(buffer_size=tf.data.experimental.AUTOTUNE)
validDataSet = allDataSet.skip(trainSize)
validDataSet = validDataSet.shuffle(1000).repeat()
validDataSet = validDataSet.map(process_path)
validDataSet = validDataSet.batch(batchSize)
imageHeight = 256
imageWidth = 256
channels = 3
inputImage = Input((imageHeight, imageWidth, channels), name='img')
model = baseUnet.get_unet(inputImage, n_filters=16, dropout=0.05, batchnorm=True)
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
callbacks = [
EarlyStopping(patience=5, verbose=1),
ReduceLROnPlateau(factor=0.1, patience=5, min_lr=0.00001, verbose=1),
ModelCheckpoint(outputModel, verbose=1, save_best_only=True, save_weights_only=False)
]
BATCH_SIZE = 32
BUFFER_SIZE = 1000
EPOCHS = 20
stepsPerEpoch = int(trainSize / BATCH_SIZE)
validationSteps = int(validSize / BATCH_SIZE)
model_history = model.fit(trainDataSet, epochs=EPOCHS,
steps_per_epoch=stepsPerEpoch,
validation_steps=validationSteps,
validation_data=validDataSet,
callbacks=callbacks)
下面的link 显示了一个类似的案例,并解释了“Python 函数只执行一次来构建函数图,然后 try 和 except 语句将不起作用。”虽然链接显示了如何遍历数据集并捕获错误...
dataset = ...
iterator = iter(dataset)
while True:
try:
elem = next(iterator)
...
except InvalidArgumentError:
...
except StopIteration:
break
...不过,我正在寻找一种在训练期间发现错误的方法。这可能吗?
【问题讨论】:
您找到解决方案了吗? 【参考方案1】:您可能会考虑使用tf.data.experimental.ignore_errors
函数来静默删除导致问题的文件
【讨论】:
如何在 Keras 中的预训练 InceptionResNetV2 模型的不同层中找到激活的形状 - Tensorflow 2.0
...中的预训练InceptionResNetV2模型的不同层中找到激活的形状-Tensorflow2.0【英文标题】:HowtofindtheshapesofactivationsinthedifferentlayersofapretrainedInceptionResNetV2modelinKeras-Tensorflow2.0【发布时间】:2020-02-0613:37:09【问题描述】:我已经加载了incept... 查看详情
Tensorflow:如何使用恢复的模型?
】Tensorflow:如何使用恢复的模型?【英文标题】:Tensorflow:Howtouserestoredmodel?【发布时间】:2018-09-2502:29:13【问题描述】:我正在尝试在tensorflow中保存和恢复我的模型,我尝试搜索并找到了许多教程,但没有一个给出明确的说明... 查看详情
如何在训练 tensorflow.keras 期间替换损失函数
】如何在训练tensorflow.keras期间替换损失函数【英文标题】:Howtoreplacelossfunctionduringtrainingtensorflow.keras【发布时间】:2020-07-1417:42:37【问题描述】:我想在训练期间替换与我的神经网络相关的损失函数,这是网络:model=tensorflow.ker... 查看详情
如何使用 gpu 并行训练 tensorflow.keras 模型? TensorFlow 版本 2.5.0
】如何使用gpu并行训练tensorflow.keras模型?TensorFlow版本2.5.0【英文标题】:Howtotraintensorflow.kerasmodelsinparallelusinggpu?Tensorflowversion2.5.0【发布时间】:2021-09-2409:04:17【问题描述】:我有以下代码运行我在不同模块中拥有的自定义模型... 查看详情
TensorFlow 2.0 在单 GPU 上训练模型
】TensorFlow2.0在单GPU上训练模型【英文标题】:Tensorflow2.0trainmodelonsingleGPU【发布时间】:2020-11-2706:19:03【问题描述】:我想在单个NVIDIA显卡(RTX2080super)上训练一个顺序tensorflow(版本2.3.0)模型。我正在使用以下代码sn-p来构建和... 查看详情
训练CNN模型图像分类期间的tensorflow NaN损失
】训练CNN模型图像分类期间的tensorflowNaN损失【英文标题】:tensorflowNaNlossduringtrainingCNNmodelimageclassification【发布时间】:2018-08-0300:26:15【问题描述】:我正在关注https://www.tensorflow.org/tutorials/layers上的CNNMnist教程,以完成我的个人... 查看详情
如何在 TensorFlow 2 中保存/加载模型的一部分?
】如何在TensorFlow2中保存/加载模型的一部分?【英文标题】:Howtosave/loadpartofamodelinTensorFlow2?【发布时间】:2020-06-0218:43:36【问题描述】:我在TensorFlow2中制作了一个自动编码器。首先,我需要在数据集上训练模型。训练自动编码... 查看详情
如何在 tensorflow 2.0 中加载和保存模型? [复制]
】如何在tensorflow2.0中加载和保存模型?[复制]【英文标题】:Howtoloadandsaveamodelintensorflow2.0?[duplicate]【发布时间】:2020-05-2115:59:08【问题描述】:在tensorflow2.0中,一旦模型训练好,我们如何保存模型以防止从一开始就对其进行重... 查看详情
生产环境中的 TensorFlow:如何重新训练您的模型
】生产环境中的TensorFlow:如何重新训练您的模型【英文标题】:TensorFlowinproduction:Howtoretrainyourmodels【发布时间】:2017-03-2102:43:53【问题描述】:我有一个与此相关的问题:TensorFlowinproductionforrealtimepredictionsinhightrafficapp-howtouse?我... 查看详情
如何从 python 中的预训练模型中获取权重并在 tensorflow 中使用它?
】如何从python中的预训练模型中获取权重并在tensorflow中使用它?【英文标题】:howcanigetweightfromapretrainedmodelinpythonanduseitintensorflow?【发布时间】:2022-01-0519:43:33【问题描述】:如何从PyTorch中的预训练模型中获取权重并在TensorFlow... 查看详情
ai-tensorflow-示例05:保存和恢复模型(代码片段)
保存和恢复模型(Saveandrestoremodels)官网示例:https://www.tensorflow.org/tutorials/keras/save_and_restore_models在训练期间保存检查点在训练期间或训练结束时自动保存检查点。权重存储在检查点格式的文件集合中,这些文件仅包含经过训练... 查看详情
如何使用 tensorflow 在 C++ 中训练模型?
】如何使用tensorflow在C++中训练模型?【英文标题】:HowtotrainamodelinC++withtensorflow?【发布时间】:2016-05-2704:25:05【问题描述】:我尝试用深度学习模型训练一个实验。我发现tensorflow是最好的方法。但是存在需要用python编写tensorflow... 查看详情
如何在 Tensorflow 对象检测 api 中评估预训练模型
】如何在Tensorflow对象检测api中评估预训练模型【英文标题】:HowtoevaluateapretrainedmodelinTensorflowobjectdetectionapi【发布时间】:2017-11-2604:47:28【问题描述】:尝试使用最近发布的Tensorflow对象检测API,并且想知道如何评估他们在模型... 查看详情
如何在 nodejs (tensorflow.js) 中训练模型?
】如何在nodejs(tensorflow.js)中训练模型?【英文标题】:Howtotrainamodelinnodejs(tensorflow.js)?【发布时间】:2020-03-1602:45:43【问题描述】:我想做一个图像分类器,但我不懂python。Tensorflow.js适用于我熟悉的javascript。可以用它训练模型吗... 查看详情
tensorflow如何在线训练模型
参考技术A在tensorflow2.0以后可以用keras来创建、训练、评估模型:其中训练模型可以用fit方法来批量训练数据:model.fit(x,y,epochs=1)#x为数据,y为相应标签,epochs为训练次数,默认为1 查看详情
在训练期间改变损失函数
...式:损失=a*loss_1+(1-a)*loss_2假设我也在训练100步。如何在tensorflow中动态更改损失函数,以便在100步训练期间逐渐将“a”从1更改为0?确切地说,我希望我的损失是损失=1*损失_1+0*损失_2=损失_1在训练开始时 查看详情
为啥 TensorFlow 对象检测 2.x 在训练模型时不显示 mAP
】为啥TensorFlow对象检测2.x在训练模型时不显示mAP【英文标题】:WhyTensorFlowobjectdetection2.xdon\'tshowmAPwhentrainingthemodel为什么TensorFlow对象检测2.x在训练模型时不显示mAP【发布时间】:2021-09-2600:37:49【问题描述】:我以前用TF1.4训练过... 查看详情
tensorflow中的滑动平均模型
原文链接在Tensorflow的教程里面,使用梯度下降算法训练神经网络时,都会提到一个使模型更加健壮的策略,即滑动平均模型。基本思想在使用梯度下降算法训练模型时,每次更新权重时,为每个权重维护一个影子变量,该影子... 查看详情