FCN-KERAS程序

本文详述了Keras框架下SGD优化器的参数配置及使用方法,包括学习率、动量、学习率衰减和Nesterov动量等。同时介绍了自定义损失函数的注意事项,并详细解析了ImageDataGenerator的众多参数,如数据标准化、随机旋转、平移、剪切、缩放等数据增强技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、keras:optimizer优化器

https://blog.youkuaiyun.com/weixin_41770169/article/details/80184130

优化器optimizer:该参数可指定为已预定义的优化器名,如rmspropadagrad,或一个Optimizer类的对象,详情见optimizers

1、SGD

keras.optimizers.SGD(lr=0.01, momentum=0.0, decay=0.0, nesterov=False)

 

随机梯度下降法,支持动量参数,支持学习衰减率,支持Nesterov动量

参数

  • lr:大或等于0的浮点数,学习率

  • momentum:大或等于0的浮点数,动量参数

  • decay:大或等于0的浮点数,每次更新后的学习率衰减值

  • nesterov:布尔值,确定是否使用Nesterov动量

二、keras.model.compile() 自定义损失函数注意点

https://blog.youkuaiyun.com/yuezhilanyi/article/details/79201705

https://www.cnblogs.com/smuxiaolei/p/8662177.html

基本用法

model.compile(optimizer=Adam(lr=1e-4), loss='binary_crossentropy', metrics=['accuracy'])

注意

  1. loss后类似’binary_crossentropy’、’mse’等代称
  2. loss为函数名称的时候,不带括号
  3. 函数参数必须为(y_true, y_pred, **kwards)的格式
  4. 不能直接使用tf.nn.sigmoid_cross_entropy_with_logits等函数,因为其参数格式为(labels=None,
    logits=None),需要指定labels=、logits=这两个参数

如:mean_squared_error

  顾名思义,意为均方误差,也称标准差,缩写为MSE,可以反映一个数据集的离散程度。

  标准误差定义为各测量值误差的平方和的平均值的平方根,故又称为均方误差。

  公式:

 

  公式意义:可以理解为一个从n维空间的一个点到一条直线的距离的函数。(此为在图形上的理解,关键看个人怎么理

三、keras中ImageDataGenerator用法(SegDataGenerator,low_from_directory可参考)

https://keras-cn.readthedocs.io/en/latest/preprocessing/image/

https://blog.youkuaiyun.com/u012969412/article/details/76796020

  • featurewise_center:布尔值,使输入数据集去中心化(均值为0), 按feature执行。
  • samplewise_center:布尔值,使输入数据的每个样本均值为0。
  • featurewise_std_normalization:布尔值,将输入除以数据集的标准差以完成标准化, 按feature执行。
  • samplewise_std_normalization:布尔值,将输入的每个样本除以其自身的标准差。
  • zca_whitening:布尔值,对输入数据施加ZCA白化。
  • rotation_range:整数,数据提升时图片随机转动的角度。随机选择图片的角度,是一个0~180的度数,取值为0~180。
  • width_shift_range:浮点数,图片宽度的某个比例,数据提升时图片随机水平偏移的幅度。
  • height_shift_range:浮点数,图片高度的某个比例,数据提升时图片随机竖直偏移的幅度。
    height_shift_range和width_shift_range是用来指定水平和竖直方向随机移动的程度,这是两个0~1之间的比例。
  • shear_range:浮点数,剪切强度(逆时针方向的剪切变换角度)。是用来进行剪切变换的程度。
  • zoom_range:浮点数或形如[lower,upper]的列表,随机缩放的幅度,若为浮点数,则相当于[lower,upper] = [1 - zoom_range, 1+zoom_range]。用来进行随机的放大。
  • channel_shift_range:浮点数,随机通道偏移的幅度。
  • fill_mode:‘constant’,‘nearest’,‘reflect’或‘wrap’之一,当进行变换时超出边界的点将根据本参数给定的方法进行处理
  • cval:浮点数或整数,当fill_mode=constant时,指定要向超出边界的点填充的值。
  • horizontal_flip:布尔值,进行随机水平翻转。随机的对图片进行水平翻转,这个参数适用于水平翻转不影响图片语义的时候。
  • vertical_flip:布尔值,进行随机竖直翻转。
  • rescale: 值将在执行其他处理前乘到整个图像上,我们的图像在RGB通道都是0~255的整数,这样的操作可能使图像的值过高或过低,所以我们将这个值定为0~1之间的数。
  • preprocessing_function: 将被应用于每个输入的函数。该函数将在任何其他修改之前运行。该函数接受一个参数,为一张图片(秩为3的numpy array),并且输出一个具有相同shape的numpy array
  • data_format:字符串,“channel_first”或“channel_last”之一,代表图像的通道维的位置。该参数是Keras 1.x中的image_dim_ordering,“channel_last”对应原本的“tf”,“channel_first”对应原本的“th”。以128x128的RGB图像为例,“channel_first”应将数据组织为(3,128,128),而“channel_last”应将数据组织为(128,128,3)。该参数的默认值是~/.keras/keras.json中设置的值,若从未设置过,则为“channel_last”。
  • --------------------- 本文来自 王不二不二不二 的优快云 博客 ,全文地址请点击:https://blog.youkuaiyun.com/u012969412/article/details/76796020?utm_source=copy
addition_rnn.py 执行序列学习以执行两个数字(作为字符串)的添加。 antirectifier.py 演示如何为Keras编写自定义图层。 babi_memnn.py 在bAbI数据集上训练一个内存网络以进行阅读理解。 babi_rnn.py 在bAbI数据集上训练一个双支循环网络,以便阅读理解。 cifar10_cnn.py 在CIFAR10小图像数据集上训练一个简单的深CNN。 conv_filter_visualization.py 通过输入空间中的渐变上升可视化VGG16的过滤器。 conv_lstm.py 演示使用卷积LSTM网络。 deep_dream.py 深深的梦想在克拉斯。 image_ocr.py 训练一个卷积堆叠,后跟一个循环堆栈和一个CTC logloss函数来执行光学字符识别(OCR)。 imdb_bidirectional_lstm.py 在IMDB情绪分类任务上训练双向LSTM。 imdb_cnn.py 演示使用Convolution1D进行文本分类。 imdb_cnn_lstm.py 在IMDB情绪分类任务上训练一个卷积堆栈,后跟一个循环堆栈网络。 imdb_fasttext.py 在IMDB情绪分类任务上训练一个FastText模型。 imdb_lstm.py 在IMDB情绪分类任务上训练一个LSTM。 lstm_benchmark.py 比较IMDB情绪分类任务上不同的LSTM实现。 lstm_text_generation.py 生成尼采文字的文字。 mnist_acgan.py 在MNIST数据集上实现AC-GAN(辅助分类器GAN) mnist_cnn.py 在MNIST数据集上训练一个简单的convnet。 mnist_hierarchical_rnn.py 训练一个分级RNN(HRNN)来分类MNIST数字。 mnist_irnn.py Le等人在“以简单的方式初始化整流线性单元的反复网络”中再现具有逐像素连续MNIST的IRNN实验。 mnist_mlp.py 在MNIST数据集上训练一个简单的深层多层感知器。 mnist_net2net.py 在“Net2Net:通过知识转移加速学习”中再现带有MNIST的Net2Net实验。 mnist_siamese_graph.py 从MNIST数据集中的一对数字上训练暹罗多层感知器。 mnist_sklearn_wrapper.py 演示如何使用sklearn包装器。 mnist_swwae.py 列出了一个堆栈,其中AutoEncoder在MNIST数据集上的剩余块上构建。 mnist_transfer_cnn.py 转移学习玩具的例子。 neural_doodle.py 神经涂鸦。 neural_style_transfer.py 神经样式转移。 pretrained_word_embeddings.py 将预训练的词嵌入(GloVe embeddings)加载到冻结的Keras嵌入层中,并使用它在20个新闻组数据集上训练文本分类模型。 reuters_mlp.py 在路透社newswire主题分类任务上训练并评估一个简单的MLP。 stateful_lstm.py 演示如何使用有状态的RNN有效地建模长序列。 variational_autoencoder.py 演示如何构建变体自动编码器。 variational_autoencoder_deconv.py 演示如何使用反褶积层使用Keras构建变体自动编码器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值