Code For Better 谷歌开发者之声----谷歌云基于TensorFlow高级机器学习_谷歌云tensorflow



针对初学者提供的入门级学习材料以及为有丰富实践经验的专业人士设计的高级学习内容,并覆盖了超过95%的大数据核心知识点,在系统性地构建了一个完整的知识体系。
因为文件数量较多,在此仅展示了部分目录并进行了截图展示。其包含了以下内容:大厂面经、学习笔记、源码讲义等;此外还包括实战项目、大纲路线以及讲解视频等内容,并非全部列出。同时后续内容也会不断更新中
如果需要这份系统化资料的朋友,请告知是否能取得
通过客户端容器运行相应的脚本, 可以便捷地使用inception-serving服务来实现图像识别
这里图片自己定义,网上就可以找到
# persian cat
curl http://f.hiphotos.baidu.com/baike/w%3D268%3Bg%3D0/sign=6268660aafec8a13141a50e6cf38f6b2/32fa828ba61ea8d3c85b36e1910a304e241f58dd.jpg -o 1.jpg
/serving/bazel-bin/tensorflow_serving/example/inception_client --server=serving:9000 --image=2.jpg
# garfield cat
curl http://a2.att.hudong.com/60/11/01300000010387125853110118750_s.jpg -o 1.jpg
/serving/bazel-bin/tensorflow_serving/example/inception_client --server=serving:9000 --image=2.jpg
二、Machine learning production environment(机器学习生产环境)
这里我们利用Anaconda作为生产环境
Anaconda支持预装的基础环境,并且无需额外配置即可进行开发。为了满足课程需求,我们部署了tensorflow-cpu环境。
Anaconda支持预装的基础环境,并且无需额外配置即可进行开发。为了满足课程需求,我们部署了tensorflow-cpu环境。
conda create -n ENV_NAME python=x.x
-n表示环境名称参数,
ENV_NAME为待创建虚拟开发环境的名称,
x.x表示该环境中python的版本是多少
启动Windows命令行窗口,在窗口输入下面的命令
conda create -n tensorflow-cpu python=3.9
若遇到'conda'并非内部或外部命令,并非可运行程序等信息的情况,则需设置Anaconda系统环境变量。当该命令执行完成后,则会生成名为tensorflow-cpu的虚拟开发环境。
查看当前Anaconda有哪些虚拟环境
conda env list
激活命令:命令激活环境后,才能进入该虚拟环境进行编程
conda activate ENV_NAME
退出环境命令
若需要退出当前虚拟开发环境,可以使用下面的命令:
conda deactivate
删除环境命令
该命令需谨慎使用,因为该命令会删除虚拟环境下的所有数据
conda remove -n ENV_NAME --all
安装Python依赖包
在tensorflow-cpu环境下使用pip工具软件安装numpy、matplotlib、pillow、pandas、scikit-learn。
启动Windows命令行窗口,在命令行窗口输入激活命令,激活tensorflow-cpu环境。
conda activate tensorflow-cpu
tensorflow-cpu环境激活后,使用pip工具分别安装上述Python依赖包。安装建议使用清华大学镜像站。如安装numpy命令如下:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy
pip安装matplotlib时,会自动安装pillow包。
安装tensorflow-cpu版本
tensorflow分为两个版本,一个是CPU版本,一个是GPU版本。GPU版本充分应用了图形处理器的计算引擎,缩短模型训练的时间,GPU版本需要独立显卡的支持
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow==2.6.0
上面的命令将在本地安装tensorflow 2.6.0版本,默认安装是cpu模式。
安装完成,需要验证tensorflow 2.6.0是否安装成功。
启动Windows命令行窗口,使用conda激活命令激活tensorflow-cpu环境,进入Python环境。
C:\Users\1>conda activate tensorflow-cpu
(tensorflow-cpu) C:\Users\1>
(tensorflow-cpu) C:\Users\1>python
>>> import tensorflow as tf
>>> print(tf.__version__)
2.6.0
三、Image Understanding with TensorFlow on GCP(通过TensorFlow进行图像处理)

1.神经网络原理
在该领域中的神经网络概念上进行阐述,在人工智能领域内被广泛认知的人工神经网络(缩写为ANNs),其本质是一种模仿生物神经系统运作机制的算法构建的数学框架;这种模型主要由基本计算单元——即所谓的'神经元'单元及其间建立的连接关系所构成

2.卷积层
在卷积神经网络架构中,每一层卷积层(Convolutional layer)均由多个独立的滤波器构成,在深度学习模型训练过程中,默认情况下这些滤波器参数设置均经过反向传播算法优化获得。其主要功能是提取输入信号的各种特征,在此架构设计下初始层次(即第一代)网络结构仅限于提取一些基础特性如边缘、线条以及角等层次特性;而随着网络深度逐渐增加,在后续训练过程中能够逐步从基础特性中提炼出更为复杂的表征。

图像分析研究的领域一般包括:
基于内容的图像检索(CBIR-Content Based Image Retrieval)
人脸识别(face recognition)
表情识别(emotion recognition)
光学字符识别(OCR-Optical Character Recognition)
手写体识别(handwriting recognition)
医学图像分析(biomedical image analysis)
视频对象提取(video object extraction)
3.池化层
不仅会对数据进行降采样操作(down-sampling),还可以通过使用p-范数来进行非线性映射的卷积运算;其中涉及的数学表达式如下:
对于矩阵A∈ℝ^{m×n},
其L_p范数定义为:
||A||p = (\frac{1}{mn} Σ{i=1}^m Σ_{j=1}^n |a_{ij}|p){1/p}, 当0 < p < ∞;
特别地,
当 p趋近于无穷大时即为最大池化.
具体作用为:
- Invariance of features is achieved by ensuring that the model pays attention to certain degrees and tolerates minor shifts.
- Dimensionality reduction is accomplished through downsampling, which reduces computational complexity.
- To a certain extent, the method prevents overfitting.
池化层的功能
通过下采样操作进一步缩小经卷积层处理后的节点矩阵的空间维度,并相应减少传递给全连接神经网络的参数量。尽管有人对池化层的作用提出质疑,在实际应用中这一策略仍然得到了广泛采用。
池化层的处理过程类似于卷积层中的过滤器设置。与卷积层中的过滤器不同,在池化层中每个过滤器仅计算对应尺寸区域内子节点矩阵的最大值或平均值。
池化层与卷积层的区别
两者的过滤器存在显著差异:卷积核能够同时作用于当前输入的所有通道,在二维空间内从节点矩阵左上角移动至右下角的同时,在第三维(深度方向)也会持续滑动以捕捉多通道特征。相比之下,在池化操作中每一级的滤波器仅关注单个通道的信息,并且只会向二维空间内进行滑动窗口操作。这意味着池化操作不仅会在二维空间内进行滑动窗口操作,在第三维(深度方向)也会持续滑动以捕捉多通道特征。

4.Tensorflow中的最大池化层
tf.nn.max_pool()最大池化
函数:
input:指需要做卷积的输入图像,它要求是一个Tensor,具有[batch, in_height, in_width, in_channels]这样的shape,具体含义是[训练时一个batch的图片数量, 图片高度, 图片宽度, 图像通道数],注意这是一个4维的Tensor,要求类型为float32和float64其中之一
filter:相当于CNN中的卷积核,它要求是一个Tensor,具有[filter_height, filter_width, in_channels, out_channels]这样的shape,具体含义是[卷积核的高度,卷积核的宽度,图像通道数,卷积核个数],要求类型与参数input相同,有一个地方需要注意,第三维in_channels,就是参数input的第四维
strides:卷积时在图像每一维的步长,这是一个一维的向量,长度4
padding:string类型的量,只能是”SAME”,”VALID”其中之一,这个值决定了不同的卷积方式(后面会介绍)
use_cudnn_on_gpu:bool类型,是否使用cudnn加速,默认为true结果返回一个Tensor,这个输出,就是我们常说的feature map
实验:
这里直接附上实验代码
import tensorflow as tf
#case 2
input = tf.Variable(tf.random_normal([1,3,3,5]))
filter = tf.Variable(tf.random_normal([1,1,5,1]))
op2 = tf.nn.conv2d(input, filter, strides=[1, 1, 1, 1], padding='VALID')
#case 3
input = tf.Variable(tf.random_normal([1,3,3,5]))
filter = tf.Variable(tf.random_normal([3,3,5,1]))
op3 = tf.nn.conv2d(input, filter, strides=[1, 1, 1, 1], padding='VALID')
![img]()
![img]()
![img]()
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!** **由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新** **[需要这份系统化资料的朋友,可以戳这里获取]()**
]
[外链图片转存中...(img-Caybh6vT-1715319936275)]
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!** **由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新** **[需要这份系统化资料的朋友,可以戳这里获取]()**
