我正在使用TF2.0在GPU上帮助转移学习来训练一个猫狗分类器。我使用Keras ImageDataGenerator执行数据扩充。在培训模型时,我监控了GPU、磁盘(HDD)和CPU的使用情况,并注意到以下几点:-
根据这些观察,我作出以下推论:-
然而,有几件事我无法理解:-
以下是一些代码片段:-
train_datagen = ImageDataGenerator(rotation_range = 30,
width_shift_range = 0.4,
height_shift_range = 0.4,
shear_range = 0.4,
zoom_range = 0.25,
horizontal_flip = True,
brightness_range = [0.5, 1.5],
preprocessing_function = preprocess_input)
valid_datagen = ImageDataGenerator(preprocessing_function = preprocess_input)
train_generator = train_datagen.flow_from_dataframe(train_data,
directory = 'train/',
x_col = 'Photo',
y_col = 'Class',
target_size = (299,299),
class_mode = 'binary',
seed = 42,
batch_size = 8)
validation_generator = valid_datagen.flow_from_dataframe(valid_data,
directory = 'train/',
x_col = 'Photo',
y_col = 'Class',
target_size = (299,299),
class_mode = 'binary',
seed = 42,
batch_size = 8)
inception_resnet_v2 = InceptionResNetV2(include_top = False,
weights = 'imagenet',
input_shape = (299, 299, 3),
pooling = 'avg',
classes = 2)
inception_resnet_v2.trainable = False
out = Dense(1, activation = 'sigmoid')(inception_resnet_v2.output)
model = Model(inputs = inception_resnet_v2.inputs, outputs = out)
checkpoint = ModelCheckpoint('model.h5',
monitor = 'val_accuracy',
verbose = 0,
save_best_only = True,
save_weights_only = False,
mode = 'max',
period = 1)
optim = tf.keras.optimizers.Adam(lr = 0.0001)
model.compile(optimizer = optim, loss = 'binary_crossentropy', metrics = ['accuracy'])
hist = model.fit_generator(train_generator,
steps_per_epoch = len(train_generator),
epochs = 10,
callbacks = [checkpoint],
validation_data = validation_generator,
verbose = 1,
validation_steps = len(validation_generator),
validation_freq = 1)
如果有人能回答我的问题,并指出我的推论是正确的还是错误的,我将不胜感激。
谢谢
默认情况下,TensorFlow映射进程可见的所有GPU(受CUDA_VISIBLE_设备限制)的几乎所有GPU内存。
您可以使用,
import tensorflow as tf
from keras import backend as k
config = tf.ConfigProto() # TensorFlow wizardry
config.gpu_options.allow_growth = True # Don't pre-allocate memory; allocate as-needed
config.gpu_options.per_process_gpu_memory_fraction = 0.95 # Only allow a total fraction the GPU memory to be allocated
k.tensorflow_backend.set_session(tf.Session(config=config)) # Create a session with the above options specified.
您还可以查看此以获取更多信息:https://www.tensorflow.org/guide/gpu
译者:bat67 最新版会在译者仓库首先同步。 目前为止,我们以及看到了如何定义网络,计算损失,并更新网络的权重。 现在可能会想, 数据呢? 通常来说,当必须处理图像、文本、音频或视频数据时,可以使用python标准库将数据加载到numpy数组里。然后将这个数组转化成torch.*Tensor。 对于图片,有Pillow,OpenCV等包可以使用 对于音频,有scipy和librosa等包可以使用
当我在容器tensorflow/tensorflow:LastGPU中运行tensorflow映像训练作业时,它不工作。 错误消息: GPU info: nvidia-smi周一11月26 07:48:59 2018 ----------------------------------------------------------------------------- | NVIDIA-SMI
我试图用下面的代码训练模型,但我一直在方法上收到错误,它告诉我将更改为。为什么?
简介 使用弱分类器的增强级联包括两个主要阶段:训练阶段和检测阶段。对象检测教程中介绍了使用基于HAAR或LBP模型的检测阶段。本文档概述了训练自己的弱分类器的级联所需的功能。当前指南将逐步完成所有不同阶段:收集训练数据,准备训练数据并执行实际模型训练。 为了支持本教程,将使用几个官方的OpenCV应用程序:opencv_createsamples,opencv_annotation,opencv_
本文向大家介绍scikit-learn 使用交叉验证训练分类器,包括了scikit-learn 使用交叉验证训练分类器的使用技巧和注意事项,需要的朋友参考一下 示例 使用虹膜数据集: 数据分为训练集和测试集。要做到这一点,我们使用train_test_split效用函数来分割双方X和y(数据和目标矢量)用随机选择train_size=0.75(训练集包含数据的75%)。 训练数据集被输入到k最近邻
我正在开发一个朴素的贝叶斯分类器使用简单的词袋概念。我的问题是,在朴素贝叶斯或任何其他机器学习中,senario'训练‘分类器是一个重要的问题。但是当我已经有了一个不同类别的词包时,如何训练朴素贝叶斯分类器呢?