tensorflowday-1tensorflow环境准备&参考资料(代码片段)

dabokele dabokele     2022-12-12     562

关键词:

文章目录

一、环境准备

1、安装

这里采用容器的方式安装,安装文档可以参考https://www.tensorflow.org/install

docker pull tensorflow/tensorflow:latest-py3
# 在容器中运行宿主机指定脚本,-v参数将宿主机和容器进行绑定,-w参数指定tf的运行目录,此时script.py脚本位于宿主机上
docker run -it --rm -v /usr/local/software/docker_files/tf_data/script:/tmp -w /tmp tensorflow/tensorflow python ./script.py
# 启动jupyter notebook,该镜像的jupyter notebook默认打开的是容器的/tf目录
docker run -it -d -p 8888:8888 \\
--net mynetwork \\
-v /usr/local/software/docker_files/tf_data/script:/tf \\
-v /usr/local/software/docker_files/tf_data/data:/data \\
-v /usr/local/software/docker_files/tf_data/model:/model \\
tensorflow/tensorflow:nightly-py3-jupyter

在容器+jupyter的模式下进入TF,通过日志中如下类似链接”http://127.0.0.1:8888/?token=fb35504be29fdb4f218912dd09d91f09960ff84a2da49d32” ,可以直接打开jupyter页面。

后续使用中会出现镜像中没有pandas模块的提示,如果想要修改已有镜像,按如下操作

# 进入容器
docker run -t -i tensorflow/tensorflow:nightly-py3-jupyter /bin/bash
# 安装插件
pip install pandas
# 提交
docker commit -m "add pandas" -a "kmc" b72a667502e9 tensorflow/tensorflow:nightly-py3-jupyter

2、验证

安装完成后,进入如jupyter中,输入如下代码验证,

>>> import tensorflow as tf
>>> tf.add(1, 2).numpy()
3
>>> hello = tf.constant('Hello, TensorFlow!')
>>> hello.numpy()
b'Hello, TensorFlow!'

二、算法学习路径

在TF的官方文档中提供了两种入门方式,分别针对初学者或者有一定经验的人。同时采用了MNIST数据集做手写数字的识别。

1、初学者模式

对初学者而言,TF中已经封装好了一些接口,直接通过API调用的方式快速定义并组装模型,如下所示,

import tensorflow as tf
mnist = tf.keras.datasets.mnist

(x_train, y_train),(x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0

model = tf.keras.models.Sequential([
  tf.keras.layers.Flatten(input_shape=(28, 28)),
  tf.keras.layers.Dense(128, activation='relu'),
  tf.keras.layers.Dropout(0.2),
  tf.keras.layers.Dense(10, activation='softmax')
])

model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

model.fit(x_train, y_train, epochs=5)
model.evaluate(x_test, y_test)

2、进阶模式

对有算法经验的人来说,上面的模式只能让用户选择一些内置的算法模型,以及定义模型的组装关系,以及一些参数,损失函数的选择等。如果在实际使用过程中,需要使用更加复杂的模型时,可以对比如下代码,

class MyModel(tf.keras.Model):
  def __init__(self):
    super(MyModel, self).__init__()
    self.conv1 = Conv2D(32, 3, activation='relu')
    self.flatten = Flatten()
    self.d1 = Dense(128, activation='relu')
    self.d2 = Dense(10, activation='softmax')

  def call(self, x):
    x = self.conv1(x)
    x = self.flatten(x)
    x = self.d1(x)
    return self.d2(x)
model = MyModel()

with tf.GradientTape() as tape:
  logits = model(images)
  loss_value = loss(logits, labels)
grads = tape.gradient(loss_value, model.trainable_variables)
optimizer.apply_gradients(zip(grads, model.trainable_variables))

根据TF官方文档中的手写数字识别案例,运行第一个TF模型。

3、算法学习路径

TF的官方文档中有一个介绍如何学习机器学习的介绍。

(1)基础课程

在这篇文档中,推荐了《Deep Learning in Python》一书作为入门,推荐了一个Coursera课程介绍
TensorFlow入门
TensorFlow和深度学习

(2)TensorFlow实战

Coursera上有一个TF实战的课程TensorFlow in Practice

(3)练习

用TF文档中的案例继续熟悉TensorFlow Core tutorials

(4)深入学习TF

接下来可以参考《 Hands-on Machine Learning with Scikit-Learn, Keras, and TensorFlow》一书,深入学习其中的概念和案例。

有关机器学习更进一步的介绍文档,Theoretical and advanced machine learning with TensorFlow

4、Keras

上面封装的比较好,使用方便的模式,是TF基于Keras实现的。更多关于Keras的介绍,可以查看TensorFlow Keras Overview

三、Resources

TF的官方文档中有一个分类是Libraries & extensions,上面介绍的机器学习入门路线,就是其中的一个模块。

在这个模块中还有值得关注的内容是,
Neural Structured Learning
theoretical-and-advanced-machine-learning
以及更多其他内容。

四、参考资料

1、官方文档

官方文档

主要有教程指南两个部分,

(1)教程

主要介绍一些TF使用方面的问题,从目录结构可以看到,这部分主要涉及到基础功能,

  • Keras操作
  • 数据装载
  • Estimator

进阶功能

  • 自定义
  • 分布式模型
  • 图像
  • 文本
  • 数据结构
  • 前沿拓展,比如对抗,强化学习等

(2)指南

主要是一些API的介绍,相对教程部分更加偏向于后续学习过程中的API介绍查阅。

2、Github

项目官方的Github地址。

另外还有一些对应的练习项目,

TensorFlow Tutorial and Examples for Beginners

3、系统学习文档

中文文档
TF2中文教程
30天吃掉那只 TensorFlow2.0

4、源码解读

  1. 图解tensorflow 源码

https://github.com/yao62995/tensorflow
https://www.cnblogs.com/yao62995/p/5773578.html

5、学习资源

https://www.tensorflow.org/resources/learn-ml#four-areas

tensorflowday-1tensorflow环境准备&参考资料(代码片段)

文章目录一、环境准备1、安装2、验证二、算法学习路径1、初学者模式2、进阶模式3、算法学习路径(1)基础课程(2)TensorFlow实战(3)练习(4)深入学习TF4、Keras三、Resources四、参考资料1、官方... 查看详情