因为没有使用pycharm等IDE作为学习的环境,而是使用jupyter notebook。
使用朱皮特笔记本有什么好处呢?
Jupyter Notebook是基于网页的用于交互计算的应用程序。其可被应用于全过程计算:开发、文档编写、运行代码和展示结果。
简而言之,Jupyter Notebook是以网页的形式打开,可以在网页页面中直接编写代码和运行代码,代码的运行结果也会直接在代码块下显示的程序。如在编程过程中需要编写说明文档,可在同一个页面中直接编写,便于作及时的说明和解释。
修改JupyterNotebook默认目录
JupyterNotebook(下简称朱比特笔记本)的默认工作目录为C盘->用户->本机用户名。
每次进入朱比特笔记本web页面都很烦,有一大堆无关的目录。因此需要修改默认的目录。
- 在开始菜单里找到并打开Anaconda Prompt,输入:jupyter notebook --generate-config
- 此时,会生成一个配置文件,我们把这个配置文件的路径拷贝下来。粘贴到此电脑地址栏并进入。
- 用notepad++打开jupyter_notebook_config.py文件,按住ctrl+f,查找_dir。如下图,我们把c.NotebookApp.notebook_dir的值设置为我们所需要的目录(若不存在,需要提前创建好),同时把这一行最前面的井号删掉并保存,因为井号是Python中注释的意思,不然不起作用。
- 本来进行到第三步应该成功了,但仍然不起作用。这时需要第四步,同样在在开始菜单的朱比特笔记本右键打开文件位置,对朱比特笔记本的快捷方式右键属性>>快捷方式>>目标,删除最后的 “%USERPROFILE%/” 才生效。
人生苦短,我用TensorFlow2
TensorFlow2.x系列比TensorFlow1.x系列好就好在它更加简易,容易入门了。可是有个声音告诉我,初学就应该学习底层的原理,实际开发使用效率更高的工具。我深知其中的道理,但是对于急功近利的我(们)来说,既然2.x系列已经为我们降低了难度,有一个更好、更简单的工具放着不用,不是傻吗?
2.0版本2019年刚刚推出,2.1版本也在2020年初推出,相关的学习资源实在是少之又少。我都有点想放弃用2.x了。
之前在中国大学慕课上找到了西安科技大学的TF2实战课但是更新比较慢,最近又发现了北大的TensorFlow2.1的学习课程,觉得应该是现在能找到的比较完整的教程了。
TF2新特性
虽然本人没接触过1.x系列,知识看过一点点教程,但在看过TF2的新特性后发觉TF2确实比上一代好用。
An end-to-end open source machine learning platform.
TensorFlow1.x——延迟执行机制(deferred execution) /静态图机制。
代码运行效率高,便于优化但程序不够简洁。
TensorFlow2.0——动态图机制(Eager Execution)
- 无需首先创建静态图,可以立刻执行计算,并返回结果。
- 能够快速的建立和调试模型。
- 执行效率不高。
- 兼顾易用性和执行效率。
- 在程序调试阶段使用动态图,快速建立模型、调试程序。
- 在部署阶段,采用静态图机制,从而提高模型的性能和部署能力。
TensorFlow1.x——重复、冗余的API
构建神经网络: tf.slim, tf.layers, tf.contrib.layers, tf.keras混乱,不利于程序共享,维护的成本高。
TensorFlow2.0——清理/整合API
清理、整合了重复的API,将tf.keras作为构建和训练模型的标准高级API。
TF2如何运行TF1代码
加入这两行代码:
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
测试一下是否正常运行: