TensorFlowDay-1 TensorFlow环境准备&参考资料
Posted dabokele
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TensorFlowDay-1 TensorFlow环境准备&参考资料相关的知识,希望对你有一定的参考价值。
文章目录
一、环境准备
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、源码解读
- 图解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-1 TensorFlow环境准备&参考资料的主要内容,如果未能解决你的问题,请参考以下文章
TensorFlowDay-1 TensorFlow环境准备&参考资料
TensorFlowDay-1 TensorFlow环境准备&参考资料
tensorflow -----AttributeError: module ‘tensorflo
Windows下Pycharm安装Tensorflow:ERROR: Could not find a version that satisfies the requirement tensorflo