keras与tensorflow、mxnet学习,pytorch安装

Keras学习

使用 Keras 手把手介绍神经网络构建(非常简单,小白入门)

http://yangguang2009.github.io/2016/11/27/deeplearning/develop-neural-network-model-with-keras-step-by-step/

Keras中文文档

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

Keras中文文档:卷积层

https://keras-cn.readthedocs.io/en/latest/layers/convolutional_layer/#conv2d

[Keras] Keras面向小数据集的图像分类(retrain&fine-tine)

https://www.jianshu.com/p/6cdf330e5d0f

Keras中文文档:应用 Applications

https://keras.io/zh/applications/

这里有很多迁移学习的模型、代码

在 ImageNet 上预训练过的用于图像分类的模型:

  • Xception
  • VGG16
  • VGG19
  • ResNet50
  • InceptionV3
  • InceptionResNetV2
  • MobileNet
  • DenseNet
  • NASNet
  • MobileNetV2

Keras: 创建多个输入以及混合数据输入的神经网络模型 

简单实例

https://blog.csdn.net/m0_37579176/article/details/89004058

Keras的卷积层conv2d、池化层MaxPooling2D:

keras的这些函数、类的讲解参考keras的中文文档
## conv2d(x, kernel, strides=(1, 1), border_mode='valid', dim_ordering='th', image_shape=None, filter_shape=None)
参数:
# kernel:卷积核张量,可以是一个整数或者一个元组(3, 3),若是整数则卷积核的长宽都是此整数。
# strides:步长,长为2的tuple
# border_mode:“same”,“valid”之一的字符串,‘valid’就是padding=0,不进行填充,"same" 表示“填充后输出的宽度和高度与输入相同
# dim_ordering:“tf”和“th”之一,维度排列顺序,就是选择tensorflow还是theano
# kernel_regularizer:施加在权重上的正则项,为Regularizer对象
为什么要正则化,防止过拟合: https://blog.csdn.net/suibianshen2012/article/details/51544022
github上的kernel_regularizer源码: https://github.com/keras-team/keras/blob/master/keras/regularizers.py
# kernel_initializer:权值初始化方法,为预定义初始化方法名的字符串,或用于初始化权重的初始化器。参考initializers
本程序:kernel_initializer='he_normal',He正态分布初始化方法,参数由0均值,标准差为sqrt(2 / fan_in) 的正态分布产生,
fan_in为权值张量的输入单元数

## keras.layers.convolutional.MaxPooling2D(pool_size=(2, 2), strides=None, border_mode='valid', dim_ordering='th')
参数
# pool_size:长为2的整数tuple,代表在两个方向(竖直,水平)上的下采样因子,如取(2,2)将使图片在两个维度上均变为原长的一半
# strides:长为2的整数tuple,或者None,步长值。
# border_mode:‘valid’或者‘same’
# dim_ordering:‘th’或‘tf’。‘th’模式中通道维(如彩色图像的3通道)位于第1个位置(维度从0开始算),而在‘tf’模式中,通道维位于第3个位置。
例如128*128的三通道彩色图片,在‘th’模式中input_shape应写为(3,128,128),而在‘tf’模式中应写为(128,128,3),
注意这里3出现在第0个位置,因为input_shape不包含样本数的维度,在其内部实现中,实际上是(None,3,128,128)和(None,128,128,3)。
默认是image_dim_ordering指定的模式,可在~/.keras/keras.json中查看,若没有设置过则为'tf'。

## model.add(Flatten())
Flatten就是把张量展平,原来是矩阵,现在展平为一维的数组

Keras 与 Tensorflow 版本之间的兼容性问题

https://docs.floydhub.com/guides/environments/

keras多分类:

https://blog.csdn.net/levy_cui/article/details/81003618

https://blog.csdn.net/PNAN222/article/details/80050887

model.fit()的参数:

https://www.jianshu.com/p/159a9ac413fa

verbose = 0 为不在标准输出流输出日志信息
verbose = 1 为输出进度条记录
verbose = 2 为每个epoch输出一行记录

from keras import backend as K

K.epsilon()==1e-07,相当于python中的零

数据预处理之独热编码(One-Hot Encoding)

使用keras的to_categorical,np.argmax

https://blog.csdn.net/yangzm/article/details/82622637

https://blog.csdn.net/JustKian/article/details/82745173

或者使用sklearn的fit和transform:

https://blog.csdn.net/zhuqiuhui/article/details/50525646

https://blog.csdn.net/u010916338/article/details/83780582
对sklearn的one-hot编码的原理探究,有时间再看:

https://www.cnblogs.com/Jerry-home/p/9824085.html

https://segmentfault.com/a/1190000019458973

 

HDF5格式、H5格式、JSON格式、YAML格式文件的区别

原文:https://blog.csdn.net/weixin_44102198/article/details/90114386

今天在load weights值的时候出现了问题,就是因为自己把这几个文件保存的内容记混乱了,所以在这里要梳理一下。

1.HDF5格式文件保存的是 : Model weights

keras代码:keras.models.Model.load_weights(filepath='hdf5文件路径')

2.H5 格式文件保存的是: Model stucture 和 Model weights

keras代码:keras.models.load_model('h5文件路径', compile=False)

3.JSON 和 YAML 格式问价保存的是: Model stucture

keras把你预加载的模型(比如VGG、Xception等)放在这个隐藏路径里:C:\Users\Administrator\.keras\models

保存模型

https://www.jianshu.com/p/372e8dcf7080

用ModelCheckpoint或save_model、save、model_to_json、model_to_yaml

加载模型

加载整个模型:

model = keras.models.load_model("./model/model1.h5")
ends = model.predict(x)

python – Keras:如何保存模型并继续培训?直接看到最佳答案那一栏

https://codeday.me/bug/20180921/257413.html

keras用model.load_weights加载模型by_name参数的用法,用于迁移学习

http://neyzoter.cn/2018/07/14/Keras-Models-Save-Load-Continue-etel/#2%E5%8F%82%E8%80%83%E6%96%87%E7%8C%AE

 

tensorflow学习

0.学习TensorFlow,打印输出tensor的值

https://blog.csdn.net/helei001/article/details/51750910

1.tensorflow的基本数据类型及转换:

(已学习:tf.constant(),tf.convert_to_tensor(),tf.zero(),tf.one(),tf.expand_dims,tf.squeeze())

https://www.cnblogs.com/chenhuabin/p/11561633.html#_label2

2.最全Tensorflow2.0 入门教程持续更新

(已学习:第一个链接,kersa快速入门)

https://zhuanlan.zhihu.com/p/59507137

 

3.tensorflow代码中tf.app.run()什么意思,从main函数进入程序
https://blog.csdn.net/fxjzzyo/article/details/80466321

 

4.tensorflow学习笔记(十七):name&variable scope
总结:
使用tf.Variable()的时候,tf.name_scope()和tf.variable_scope() 都会给 Variable 和 op 的 name属性加上前缀。
使用tf.get_variable()的时候,tf.name_scope()就不会给 tf.get_variable()创建出来的Variable加前缀。但是 tf.Variable() 创建出来的就会受到 name_scope 的影响.

https://blog.csdn.net/u012436149/article/details/53081454

5.TensorFlow中CNN的两种padding方式“SAME”和“VALID”

基本原理:

https://blog.csdn.net/wuzqChom/article/details/74785643

实战分析:

【TensorFlow】一文弄懂CNN中的padding参数

6.Tensorflow中padding的两种类型SAME和VALID的源码:

https://blog.csdn.net/jiandanjinxin/article/details/77519629

7.tf.app.run()  会加载tf.app.flags来运行main函数

https://blog.csdn.net/helei001/article/details/51859423

8.tf.app.flags  可以从控制台命令行输入参数

https://blog.csdn.net/dcrmg/article/details/79658725

9.技术分享|TensorFlow初学者在使用过程中可能遇到的问题及解决办法

简介:非常好的技术分享,讲了tensorflow分布式运行的一些内容、和一些数据维度不匹配的错误、tf.app.flags。

https://mp.weixin.qq.com/s?__biz=MzI2NzI2OTExNA%3D%3D&mid=2247483960&idx=1&sn=a01fb83443c1a6537f3c9aa5801085f2&chksm=ea8024adddf7adbb66de772f394eaec1fcdf6a81598ae6a8798c060e8938361a387d35d8a103

 

10.tf.train.Supervisor()

简介:用来保存ckpt模型文件、Summary,

https://www.jianshu.com/p/7490ebfa3de8

supervisor可以看做一个工具,或者说是对原生tensorflow的一层封装,目的主要是通过定期save的方法增强训练健壮性。

  • 能处理关机以及彻底崩溃的情况。
  • 可以在关机或崩溃后恢复。
  • 可以通过TensorBoard进行监控。

为了能够在停机或崩溃后恢复训练,训练过程必须周期保存检查点。在重新启动时,它必须查找最新的检查点,并在恢复训练之前加载它。

tf.train.Supervisor()的一个参数:save_model_secs: 每个checkpoint之间的秒数。默认为600,即10分钟。

https://blog.csdn.net/ei1990/article/details/77948001

sv = tf.train.Supervisor(logdir=log_path, graph=model.graph)  # logdir用来保存checkpoint和summary

MXnet学习:

官网:

https://mxnet.incubator.apache.org/versions/master/api/python/gluon/nn.html?highlight=ceil_mode#mxnet.gluon.nn.MaxPool2D

MXNet官方文档中文版教程(8):使用预训练模型预测(青青韶华)

https://blog.csdn.net/qq_36165459/article/details/78394434

网友翻译,MXNet官方文档教程(7):训练和推断模型:(Catalyst_ZX)

https://blog.csdn.net/Catalyst_ZX/article/details/60875193

mxnet(gluon)学习之路-使用HybridBlock构建网络

https://blog.csdn.net/Iriving_shu/article/details/81416891
【MXNet】(二十四):实现Batch Normalization

https://blog.csdn.net/heiheiya/article/details/87722121

mxnet框架下学梵高画画

https://blog.csdn.net/chenzhi1992/article/details/53401287

安装mxnet-cu90是GPU版本,安装mxnet是CPU版本:

https://blog.csdn.net/marleylee/article/details/81988365

 

英伟达支持各种深度学习框架的Cudnn版本

https://developer.nvidia.com/deep-learning-frameworks

解析mxnet.ndarray.reshape的用法,和numpy.reshape很像

https://blog.csdn.net/xiaotao_1/article/details/79630968

 

学习import mxnet.ndarray as nd

1.

ERROR1:ValueError: setting an array element with a sequence.
在创建NDarray时候没有让所有的元素放在一个中括号里
错误示例:a1 = nd.array([[1,1,2],[2,3,3]],[[4,3,3],[5,4,4]])
正确示例:a1 = nd.array([[[1,1,2],[2,3,3]],[[4,3,3],[5,4,4]]])

2.

a1 = nd.array([[[1,1,2],[2,3,3]],[[4,3,3],[5,4,4]]])

a1 = a1.asnumpy()  # 将a1转化成numpy数组

img为numpy.ndarray类型

 

array = mx.nd.array(img)  # 将img转换成mxnet.ndarray类型

3.

【深度学习】MXNet基本数据结构NDArray常用操作

https://blog.csdn.net/qq_28869927/article/details/84946472

pytorch安装:

参考:pytorch,torch,torchvision的gpu版本安装避坑

或者参考下面这个,

参考:https://blog.csdn.net/weixin_41010198/article/details/103107083

pip install torch -f https://download.pytorch.org/whl/torch_stable.html

你可能感兴趣的:(深度学习,AI,keras)