CADL
CADL 是一套源自 Kadenze 学院免费慕课《基于 TensorFlow 的深度学习创意应用》的开源教学资源库。它并非传统的软件工具,而是包含了三门完整课程的讲座转录、代码实现及作业练习,旨在帮助学习者掌握如何利用深度学习技术进行艺术创作与创意表达。
针对初学者在理解抽象神经网络原理及其在图像、音频、音乐等创意领域应用时的困难,CADL 通过 Jupyter Notebook 形式提供了从零开始的实践路径。内容涵盖 TensorFlow 基础、生成对抗网络(GANs)、变分自编码器(VAE)、Deep Dream 视觉化、风格迁移,以及 Magenta 实验室的音乐与文本建模等前沿技术。用户可以直接运行代码,观察模型如何“幻觉”出图像或创作旋律,从而直观理解算法背后的逻辑。
这套资源特别适合希望跨界融合技术与艺术的开发者、设计师、数字艺术家以及对创意编程感兴趣的研究人员。其独特亮点在于将严谨的计算机科学理论与感性的艺术创作紧密结合,不仅教授如何构建模型,更引导用户探索算法的美学潜力。虽然项目目前处于归档状态,但其系统的课程结构和丰富的实战案例,依然是进入创意深度学习领域的宝贵入门指南。
使用场景
一位数字艺术家希望利用深度学习技术创作具有独特风格的生成艺术,但缺乏系统的 TensorFlow 实战经验和完整的代码框架。
没有 CADL 时
- 开发者需要在海量零散的技术博客中摸索,难以构建从数据预处理到模型训练的系统性知识体系。
- 尝试复现 Deep Dream 或 GAN(生成对抗网络)等创意算法时,常因缺少关键的可视化调试代码而陷入黑盒困境,无法理解神经网络内部的表征。
- 面对复杂的数学公式和抽象概念,缺乏配套的 Jupyter Notebook 交互式练习,导致理论难以转化为实际的创意代码。
- 想要实现音乐生成或风格迁移等跨模态应用时,需从头编写底层架构,耗费数周时间却难以跑通第一个 Demo。
使用 CADL 后
- 艺术家可以直接跟随三门课程的完整讲义,按部就班地掌握从 TensorFlow 基础到高级生成模型的全链路开发流程。
- 利用课程提供的现成 Notebooks,立即运行并修改 Deep Dream 和风格迁移代码,通过可视化梯度直观调整艺术效果,大幅降低试错成本。
- 通过课后作业中的交互式编程任务,将无监督学习、变分自编码器(VAE)等复杂理论直接应用于图像分类和音频合成实践中。
- 调用封装好的
pycadlPython 包,快速搭建 Magenta 音乐模型或 PixelCNN 图像生成器,在几天内即可原型化自己的创意应用。
CADL 将深奥的深度学习理论转化为可执行的创意工具,让创作者能专注于艺术表达而非底层代码的重复造轮子。
运行环境要求
- Linux
- macOS
- Windows
- 可选
- 如需使用 GPU,需要 NVIDIA 显卡并安装 CUDA(具体版本未说明,文中提及需安装 nvidia-docker 或 tensorflow-gpu)
- MacOS 下的 GPU 支持有单独说明但细节未展开
未说明

快速开始
使用 TensorFlow 的深度学习创意应用
此仓库包含三门 Kadenze Academy 课程中的第一门——使用 TensorFlow 的深度学习创意应用——的讲座文字稿和作业,以 Jupyter Notebook 形式呈现。此外,还包含一个 Python 软件包,其中包含了在全部三门课程中开发的所有代码。
课程 1:使用 TensorFlow 的深度学习创意应用 I
第 1 讲:TensorFlow 简介
第 2 讲:使用 TensorFlow 训练神经网络
第 3 讲:无监督与监督学习
第 4 讲:可视化与幻觉式表征
第 5 讲:生成模型
课程 2:使用 TensorFlow 的深度学习创意应用 II
第 1 讲:云计算、GPU 与部署
第 2 讲:混合密度网络
第 3 讲:用 RNN 和 DRAW 建模注意力机制
第 4 讲:使用 GAN 进行图像到图像的转换
课程 3:使用 TensorFlow 的深度学习创意应用 III
第 1 讲:建模音乐与艺术:Google Brain 的 Magenta 实验室
第 2 讲:建模语言:自然语言处理
第 3 讲:使用 PixelCNN 进行自回归图像建模
第 4 讲:使用 WaveNet 和 NSynth 建模音频
GitHub 内容概览
| 讲次 | 描述 | 文字稿 | 作业 | |
|---|---|---|---|---|
| Python 软件包 | pycadl | 课程 2 和 3 所需的 Python 软件包 | 不适用 | 不适用 |
| 安装 | 安装预备知识 | 设置 Python/Notebook 及必要库。 | 不适用 | 不适用 |
| 预备知识 | Python 预备知识 | 使用 Python 和图像的基本操作。 | 不适用 | 不适用 |
| 1 | 使用 TensorFlow 进行计算 | 处理小型图像数据集。数据预处理。TensorFlow 基础知识。对数据集进行排序和整理。 | lecture-1.ipynb Colab | session-1.ipynb |
| 2 | 神经网络基础 | 学习如何创建神经网络。学习使用神经网络绘制图像。将创造性思维应用于网络的输入、输出及定义。 | lecture-2.ipynb | session-2.ipynb |
| 3 | 无监督与监督学习 | 构建自编码器。通过卷积、去噪和变分层扩展它。构建深层分类网络。使用 softmax 和 onehot 编码,利用深度卷积网络对音频进行分类。 | lecture-3.ipynb | session-3.ipynb |
| 4 | 可视化表征 | 可视化反向传播的梯度,利用它们生成 Deep Dream,并通过正则化扩展 Deep Dream。使用另一张图片的绘画风格或幻觉美学来修饰或合成新图片。 | lecture-4.ipynb | session-4.ipynb |
| 5 | 生成模型 | 构建生成对抗网络,并结合变分自编码器进行扩展。利用该网络的潜在空间进行潜在运算。使用 LSTM 构建字符级循环神经网络。理解循环神经网络的不同推断方式。 | lecture-5.ipynb | session-5-part-1.ipynb, session-5-part-2.ipynb |
安装预备知识
- 快速入门指南
- 什么是 Notebook?
- Docker 工具箱
- Jupyter Notebook
- 导航至 Notebook
- 安装 Python 包
- CUDA/GPU 指令
- 测试
- 适用于 macOS 的 CUDA/GPU 指令
- 故障排除
第一门课程大量使用 Jupyter Notebook。这对于提交作业以及与我为每次作业提供的引导式会话笔记本互动至关重要。请按照本指南操作,我们将了解如何获取所有必要的库。完成本步骤后,您将成功安装 Jupyter Notebook、NumPy、SciPy 和 Matplotlib。尽管这些库在后续讲座中涉及的深度学习任务中并非必需,但它们对于在计算机上处理数据、准备学习数据以及探索结果非常有用。
快速入门指南
如果您不熟悉 Jupyter Notebook 或 Python 库的安装,请跳过本节,直接阅读本自述文件的其余部分。本节仅适用于希望快速上手的高级用户。
有两种方法可以开始使用。您可以使用原生的 pip 安装,也可以使用 Docker。下面分别提供了这两种方法的快速入门指南。如果您在使用这些方法时遇到困难,请跳到这些部分下方的更详细指南。
方法 1:pip 安装
对于精通 Python 编程的用户,您需要 Python 3.4 或更高版本以及最新版 TensorFlow,可以通过 pip 安装,例如:
$ pip install tensorflow
或者带有 CUDA 的版本:
$ pip install tensorflow-gpu
方法 2:Docker 安装
如果您希望在一个受控环境中运行,并且所有依赖项都已经为您安装好,同时您也熟悉 Docker 和 Jupyter,那么您可以按照以下步骤开始使用本仓库:
$ cd
$ git clone --recursive https://github.com/pkmital/CADL.git
$ cd CADL
$ docker build -t cadl .
$ docker run -it -p 8888:8888 -p 6006:6006 -v /$(pwd)/session-1:/notebooks --name tf cadl /bin/bash
请注意,您也可以跳过构建步骤,直接从 Docker Hub 下载镜像,如下所示:
$ docker run -it -p 8888:8888 -p 6006:6006 -v /$(pwd)/session-1:/notebooks --name tf pkmital/cadl /bin/bash
请确保将“session-1”替换为您正在使用的会话名称,例如“session-2”、“session-3”等。这将为您提供一个包含每个会话文件的 bash 提示符:
root@39c4441bcde8:/notebooks# ls
README.md lecture-1.ipynb libs session-1.ipynb tests
然后您可以使用以下命令启动 Jupyter:
root@39c4441bcde8:/notebooks# jupyter notebook --allow-root
[I 01:45:27.712 NotebookApp] [nb_conda_kernels] 启用,找到 2 个内核
[I 01:45:27.715 NotebookApp] 将笔记本服务器的 Cookie 密钥写入 /root/.local/share/jupyter/runtime/notebook_cookie_secret
[W 01:45:27.729 NotebookApp] 警告:笔记本服务器监听所有 IP 地址,且未使用加密。这并不推荐。
[I 01:45:27.799 NotebookApp] [nb_anacondacloud] 已启用
[I 01:45:27.802 NotebookApp] [nb_conda] 已启用
[I 01:45:27.856 NotebookApp] ✓ nbpresent HTML 导出已启用
[W 01:45:27.856 NotebookApp] ✗ nbpresent PDF 导出已禁用:未找到名为 'nbbrowserpdf' 的模块
[I 01:45:27.858 NotebookApp] 正在为本地目录中的笔记本提供服务:/notebooks
[I 01:45:27.858 NotebookApp] 当前有 0 个活动内核
[I 01:45:27.858 NotebookApp] Jupyter Notebook 正在运行于:http://[您系统上的所有 IP 地址]:8888/?token=dd68eeffd8f227dd789327c981d16b24631866e909bd6469
[I 01:45:27.858 NotebookApp] 使用 Control-C 可停止此服务器并关闭所有内核(连续两次以跳过确认)。
随后,如果您使用 Google Chrome 浏览器(推荐)访问 “http://localhost:8888”,Jupyter 应该已经成功运行。如果导航到 session-1.ipynb 文件,您将看到作业;而导航到 “lecture-1.ipynb” 则可以看到课程讲义。其他会话也是如此。
如果您需要再次启动 Docker 镜像,可以执行以下命令:
$ cd
$ cd CADL
$ docker start -i tf
如果您希望使用 GPU 版本,并且您的机器是 Linux 系统且配备了 NVIDIA GPU,您可以使用 nvidia-docker(此方法仅适用于 Linux 系统!对于非 Linux 系统但希望使用 GPU 的用户,请参阅下方的扩展说明或上述的快速 pip 安装方法):
$ wget -P /tmp https://github.com/NVIDIA/nvidia-docker/releases/download/v1.0.0-rc.3/nvidia-docker_1.0.0.rc.3-1_amd64.deb
$ sudo dpkg -i /tmp/nvidia-docker*.deb && rm /tmp/nvidia-docker*.deb
$ nvidia-docker build -t cadl-gpu -f Dockerfile-gpu .
$ nvidia-docker run -it -p 8888:8888 -p 6006:6006 -v /$(pwd)/session-1:/notebooks --name tf cadl-gpu /bin/bash
$ nvidia-docker start -i tf
如果您在设置过程中遇到任何问题,请继续阅读本文档的其余部分,其中提供了更为详细的说明。
什么是 Notebook?
Jupyter Notebook,此前在 4.0 版本之前称为 “iPython Notebook”,是一种通过网页浏览器与 Python 代码进行交互的方式。它是一种非常有用的教学工具,我们将用于所有的作业任务。Notebook 文件的扩展名是 “ipynb”,这是 “iPython Notebook” 的缩写。一些网站,如 nbviewer.ipython.org 或 www.github.com,可以直接将 .ipynb 文件渲染为 HTML 格式查看。然而,这些并不是可交互的版本,也就是说,它们并没有运行评估和交互代码的 Python 内核。因此,Notebook 只是其中代码的静态版本。
要与 Notebook 交互并开始编写代码,您需要启动终端(适用于 Mac 和 Linux 用户)。对于 Windows 用户,或者任何在使用 Linux/Mac 指令时遇到问题的人士,请务必仔细遵循关于 Docker Toolbox 的下一节内容!如果您不是 Windows 用户,请先尝试跳过下一节,直接使用 Jupyter Notebook 中的安装说明,然后再尝试 Docker,因为这种方法通常比运行 Docker 更快。
Docker 工具箱
目前,Windows 用户只能通过以下两种方式安装 TensorFlow:使用 64 位 Python 3.5 环境并通过 pip 安装(详见 TensorFlow 官方文档),或者按照下文所述使用 Docker。
在任何类型的系统上快速启动并运行的最简单方法就是使用 Docker。Docker 是一种在你的计算机上管理“虚拟”Linux 系统的方式,它可以帮助你创建一个能够运行 TensorFlow 的环境。首先,请下载并安装 Docker 工具箱:
https://www.docker.com/products/docker-toolbox
Linux 用户可以使用自己喜欢的包管理器来安装 Docker。
对于 macOS 和 Windows 用户,接下来你需要运行“Docker Quickstart Terminal”,它会启动一个在你的计算机上的虚拟 Linux 系统中运行的终端环境。虚拟机本质上是另一种机器的模拟。这一点很重要,因为我们将使用这个虚拟机来运行 Linux,并安装所有运行 TensorFlow 所需的库。
请注意,如果你在 Windows 上遇到无法启动 Docker Quickstart Terminal 的问题,可能是因为你已经安装了 Hyper-V。在这种情况下,请尝试使用 Docker for Windows。然后启动新安装的“Docker CLI”程序。
一旦终端启动,无论是通过 Docker CLI 还是 Docker Quickstart Terminal,都请运行以下命令(忽略每行开头的 $ 符号,它只是表示该行是一个终端命令,你应该原样输入并按回车键):
$ cd
$ docker-machine ip
如果你使用的是 Docker 工具箱,那么最后一条命令应该会显示你的虚拟机的 IP 地址。这就是你的虚拟机的位置。请记下这个 IP 地址,我们稍后会用到它。如果你使用的是“Docker for Windows”,则不需要这个 IP,因为我们直接使用 “localhost”。
接下来的命令会切换到你的“主目录”。然后我们会“克隆” GitHub 仓库。这将使用 git 下载课程所需的所有内容。如果在此步骤遇到困难,请确保你已安装 git。
$ cd
$ git clone --recursive https://github.com/pkmital/CADL.git
现在我们将打印出该目录的完整路径。请务必记下这个目录。一切操作都将在这个目录中进行,我稍后会详细说明。
$ echo /$(pwd)/CADL
接下来运行以下命令,它将下载运行 TensorFlow、Python 和 Jupyter Notebook 所需的一切文件(同样,只需忽略行首的 $ 符号)!
$ docker run -it -p 8888:8888 -p 6006:6006 -v /$(pwd)/CADL:/notebooks --name tf pkmital/cadl
这条命令的作用是:
* 运行 Docker 镜像 pkmital/cadl
* --name 为容器指定了一个简短名称“tf”
* -v 将本地目录 /$(pwd)/CADL 映射到虚拟机中的 /notebooks 目录
* -p 将虚拟机的端口转发到你的本地机器,以便你可以访问虚拟机的端口
* -it 以交互式模式运行容器
你应当只将文件放置在 /notebooks 目录中。如果你将文件放在虚拟机中 /notebooks 目录之外的位置——而这个位置与你本地机器上的 CADL 目录是相同的——这些文件将不会被保存。我们使用 Docker 来将 CADL 目录镜像到虚拟机中,该虚拟机具备用 Python 和 TensorFlow 编程所需的全部工具。该目录中的任何内容都会被镜像到虚拟机的 /notebooks 目录下。
你也可以尝试使用其他目录来运行 docker run 命令。例如:
$ docker run -it -p 8888:8888 -p 6006:6006 -v /Users/YOURUSERNAME/Desktop:/notebooks --name tf pkmital/cadl
这意味着你的桌面将成为你可以移动文件的地方,在虚拟机中,你可以在 /notebooks 目录下与这些文件进行交互。
对于 macOS 用户,如果你因为使用 Anaconda 和 pip 安装时出现问题而选择安装 Docker,则应使用以下命令(注意缺少斜杠):
$ docker run -it -p 8888:8888 -p 6006:6006 -v $(pwd)/CADL:/notebooks --name tf pkmital/cadl
当你想要启动这个容器时,只需打开 Docker Quickstart Terminal,然后输入:
$ cd
$ docker start -i tf
你会注意到提示符现在变成了 # 而不是 $。你应该会在你的主目录中看到一个新的文件夹“tensorflow”。起初这个目录是空的。请务必只在这个目录中进行操作,否则你在虚拟机上创建的任何文件在容器关闭后都会被删除!当你克隆 CADL 仓库,或者通过 Windows 机器将 ZIP 文件的内容解压到这个目录中(它会出现在你的主目录下的“cadl”文件夹中),你就可以通过 Docker 实例访问这些内容。
例如,在运行 docker start -i tf 命令后,试着进入 /notebooks 目录:
# cd /notebooks
Jupyter Notebook
OS X/Linux
注意:Windows/Docker 用户请跳过本节,直接查看【Windows/Docker】部分。对于 OS X/Linux 用户,确保安装了 Python 3.4 或更高版本以及 Jupyter Notebook 的最简单方法是安装 Anaconda for Python 3.5,下载地址如下:
安装 Anaconda 后,请务必重启终端,因为需要设置一些 PATH 变量。
然后运行以下命令:
$ curl https://bootstrap.pypa.io/ez_setup.py -o - | python
如果你已经安装了 conda,但仅使用 Python 2,可以非常方便地 添加一个包含 Python 3 的新环境,并根据需要在不同环境之间切换。或者,如果你没有安装 Anaconda,而是通过系统自带的方式安装了 Python,我强烈建议你使用 Anaconda 或 pyenv 来管理多个 Python 版本的安装。
安装 Anaconda 后,你将拥有 Python 和包 ipython[notebook],以及许多其他非常有用的包,例如 numpy、matplotlib、scikit-learn、scikit-image 等等。
所有软件安装完成后,重启你的终端应用程序(在 OS X 上,你可以使用 Spotlight 搜索“终端”),然后通过 cd 命令进入包含 .ipynb 或 iPython Notebook 文件的目录。这需要输入命令:cd some_directory。进入笔记本文件所在的目录后,输入:jupyter notebook。如果此命令无法正常运行,则说明你尚未安装 Jupyter Notebook!请尝试按照上述步骤安装 Anaconda,重启终端,或手动安装 Jupyter Notebook,具体操作如下(请忽略 $ 符号,它仅表示这是一个终端命令,你需要原样输入并按 Enter 键):
$ pip3 install ipython[notebook]
$ jupyter notebook
如果你遇到类似以下错误信息:
[W 20:37:40.543 NotebookApp] 内核未找到:无
请先尝试运行:
$ ipython3 kernel install
### Windows/Docker 容器
对于启用了防火墙的用户,必须按照 Jupyter Notebooks 防火墙设置说明 添加例外规则,否则可能无法与笔记本交互。具体来说,你需要允许来自 127.0.0.1(localhost)的连接,并开放 49152 到 65535 范围内的端口。一旦进入如上文所述的 Docker 容器,你就可以这样启动 Jupyter Notebook:
$ cd /notebooks
$ jupyter notebook &
关于虚拟机与 Windows 目录的区别:
这一点比较难理解,主要是因为我之前没有解释清楚。Docker 是运行在你电脑内部的“虚拟”计算机,它有自己的文件系统和目录结构。因此,你无法直接引用 Windows 机器上的目录。当你首次运行 Docker 容器时(例如:$ docker run -it -p 8888:8888 -p 6006:6006 -v /$(pwd)/tensorflow:/notebooks --name tf pkmital/cadl),其中包含了 -v /$(pwd)/tensorflow:/notebooks 参数,它的作用是将 Windows 机器上的某个目录“镜像”到 Docker 容器中。也就是说,Windows 机器上 /$(pwd)/tensorflow 目录下的内容会出现在 Docker 容器的 /notebooks 目录下。这个 Windows 目录很可能就是 /Users/<YOURUSERNAME>/tensorflow。因此,只有在这个目录下创建的文件,才能在 Docker 容器中访问到。
假设你的用户名是 “pkmital”,那么你的主目录就是 /Users/pkmital,你在 Windows 机器上将 /Users/pkmital/tensorflow 目录镜像到了 Docker 容器的 /notebooks 下。现在,如果我在 Windows 机器上创建了一个 /Users/pkmital/tensorflow/images 目录,并在里面放了一些 PNG 文件,那么在 Docker 容器的 /notebooks/images 目录下也能看到这些文件。如果我把 CADL 仓库放在 /Users/pkmital/tensorflow 下,那么在 Windows 机器上对应的路径就是 /Users/pkmital/tensorflow/CADL/session-1/session-1.ipynb,而在 Docker 容器中则是 /notebooks/CADL/session-1/session-1.ipynb。从这个运行在 Docker 容器中的笔记本中,通过 Jupyter Notebook 访问这些图片时,代码可以写成:
import os
os.listdir('../../images')
进入 Jupyter Notebook
运行 jupyter notebook & 后,你应该会看到类似以下的信息:
root@182bd64f27d2:~# jupyter notebook &
[I 21:15:33.647 NotebookApp] 正在将笔记本服务器的 Cookie 密钥写入 /root/.local/share/jupyter/runtime/notebook_cookie_secret
[W 21:15:33.712 NotebookApp] 警告:笔记本服务器正在监听所有 IP 地址,且未启用加密。这并不推荐。
[W 21:15:33.713 NotebookApp] 警告:笔记本服务器正在监听所有 IP 地址,且未启用身份验证。这非常不安全,也不推荐。
[I 21:15:33.720 NotebookApp] 正在从本地目录 /root 提供笔记本服务。
[I 21:15:33.721 NotebookApp] 当前有 0 个活动内核。
[I 21:15:33.721 NotebookApp] IPython Notebook 正在运行于:http://[你系统的所有 IP 地址]:8888/
[I 21:15:33.721 NotebookApp] 使用 Control-C 可停止此服务器并关闭所有内核(连续两次可跳过确认)。
如果 IP 地址或命令行提示符看起来有所不同,也不必担心。请注意其中写着:“IPython Notebook 正在运行于”。如果你使用的是 Docker(Windows 用户),则需要记录下这个 IP 地址。而对于 OS X/Linux 用户,我们可以直接使用 “localhost”,因此无需为此担心。接下来,打开你喜欢的浏览器(Chrome、Safari 或 Firefox 等),然后访问:
或者对于 Windows 用户:
其中 ADDRESS 就是你之前记录下来的 IP 地址。例如,在我的机器上,我会访问:
这将启动 Jupyter Notebook,你就可以开始完成作业了!
安装 Python 包
包是标准 Python 库的扩展或有用的库。在本课程中,我们将使用几个包,包括 TensorFlow、NumPy、Matplotlib、SciPy、SciKit-Image 和 SciKit-Learn。Windows 用户已经拥有这些库,因为 Docker 容器中已包含它们。不过,如果需要,您也可以使用 Python 包管理器 pip 来安装这些包。OSX/Linux 用户应按照以下步骤操作,以确保他们拥有这些包的最新版本。在 Python 3.4 及更高版本中,pip 随标准 Python 安装一起提供。要使用 pip,请先确保您正在使用正确的版本。一种方法是检查您正在运行哪个 pip:
$ which pip
$ which pip3
使用指向最合理安装路径的那个 pip(例如,出于某种原因,OSX 用户的 Anaconda 并不会将 pip3 链接到 Python 3 的 pip,而是指向系统的 Python 3 版本)。
然后您将输入:
$ pip3 install -U pip setuptools
以确保您拥有最新版本的 pip,接着:
$ pip3 install some_package
获取必要的库:
$ pip3 install "scikit-image>=0.11.3" "numpy>=1.11.0" "matplotlib>=1.5.1" "scikit-learn>=0.17"
这应该能为您安装本课程所需的所有库,但不包括 TensorFlow。TensorFlow 是一个特殊情况,但可以通过类似的方式使用 pip 进行安装,只需将 pip 指向与您的操作系统相对应的 GitHub 仓库即可。
Ubuntu/Linux 64 位系统(适用于 Python 3.4)
$ pip3 install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.11.0rc1-cp34-cp34m-linux_x86_64.whl
Ubuntu/Linux 64 位系统(适用于 Python 3.5)
$ pip3 install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.11.0rc1-cp35-cp35m-linux_x86_64.whl
OSX 系统(适用于 Python 3.4 或 Python 3.5)
$ pip3 install --upgrade https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.11.0rc1-py3-none-any.whl
其他 Linux/OSX 系统
对于大多数 OSX/Linux 系统,包括那些使用 NVIDIA GPU 和 CUDA 的系统,您都可以通过以下链接中列出的软件包来使用 pip 安装 TensorFlow:
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/g3doc/get_started/os_setup.md#pip-installation
如果您在使用 pip 安装时遇到问题,请先查看此处:常见安装问题。如果仍然无法解决,您可以前往论坛寻求帮助,或者按照上述 Windows 指南中的说明运行 Docker 实例:设置 Docker 容器。
CUDA/GPU 使用说明
请注意,我没有提供关于如何设置 CUDA 的说明,因为这超出了本课程的范围!如果您有兴趣使用 GPU 加速,我强烈建议您使用 Ubuntu Linux,并按照此处的说明在 Nimbix 或 Amazon EC2 上设置一台机器:https://github.com/tensorflow/tensorflow/blob/master/tensorflow/g3doc/get_started/os_setup.md#optional-install-cuda-gpus-on-linux。如果您使用 Nimbix,可以跳过安装过程,因为那里已经有预装了 TensorFlow 的机器。同样,对于 Amazon EC2,也有许多已经预装了 TensorFlow 的“镜像”可供选择。
测试安装
为确认安装成功,请尝试运行以下命令:
$ python3 -c 'import tensorflow as tf; print(tf.__version__)'
根据您安装的版本,您应该会看到输出 1.0.0。
macOS 上的 CUDA/GPU 指令
当您的 Mac 配备了 NVIDIA 显卡时,您可以使用 GPU 进行 TensorFlow 计算。对于配备 ATI 或 Intel 显卡的 Mac,不支持 GPU 加速计算。
如果您之前已经安装了 CPU 版本的 TensorFlow,请先将其卸载:
$ pip3 uninstall tensorflow
使用 Homebrew 安装以下软件包:
$ brew install coreutils
$ brew tap caskroom/cask
$ brew cask install cuda
CUDA 工具包安装完成后,您需要设置所需的环境变量,将以下内容添加到您的 ~/.profile 文件中:
export CUDA_HOME=/usr/local/cuda
export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH:$CUDA_HOME/lib"
export PATH="$CUDA_HOME/bin:$PATH"
TensorFlow 需要 libcuda.1.dylib 库,因此我们需要创建一个额外的符号链接:
sudo ln -sf /usr/local/cuda/lib/libcuda.dylib /usr/local/cuda/lib/libcuda.1.dylib
最后,您还需要安装 CUDA 深度神经网络(cuDNN v5)库,这通常需要一个 加速计算开发者计划 账户。下载并解压后,将头文件和库文件移动到本地的 CUDA 工具包文件夹中:
$ sudo mv include/cudnn.h /Developer/NVIDIA/CUDA-8.0/include/
$ sudo mv lib/libcudnn* /Developer/NVIDIA/CUDA-8.0/lib
$ sudo ln -s /Developer/NVIDIA/CUDA-8.0/lib/libcudnn* /usr/local/cuda/lib/
然后,最后一步,使用以下命令安装带有 GPU 支持的 TensorFlow:
$ pip3 install --ignore-installed --upgrade tensorflow-gpu
根据 TensorFlow 官网的说明,上述步骤应该可以正常工作。然而,在 macOS 10.11(El Capitan)及更高版本上,环境变量 DYLD_LIBRARY_PATH 会被忽略,导致在交互式 Python 控制台和 JetBrains PyCharm IDE 中出现错误。动态库 libcudart.8.0.dylib 无法加载。这是由于 macOS 10.11 及更高版本引入了一种新的保护机制。El Capitan 引入了一个名为“系统完整性保护”(SIP)的功能,也称为“无根模式”。该功能通过阻止任何用户(无论是否具有系统管理员权限)修改多个操作系统目录和文件来减少恶意软件攻击的可能性。
警告: SIP 的作用是防止恶意软件和其他未经授权的修改进入系统文件。请考虑是否要暂时禁用此保护机制。
以下是禁用 SIP 的步骤:
- 重启您的 Mac。
- 在 OS X 启动之前,按住 Command-R 键,并持续按住直到看到 Apple 标志和进度条。松开键,这将引导您进入恢复模式。
- 从“实用工具”菜单中选择“终端”。
- 在提示符下输入以下内容并按回车键:
csrutil disable - 终端应显示 SIP 已被禁用的消息。
- 从 菜单中选择“重新启动”。
您可以通过执行上述步骤,但使用 csrutil enable 命令来重新启用 SIP。
故障排除
ImportError: 没有名为 'tensorflow' 的模块
您可能安装了不同版本的 Python。可以通过查看以下命令的输出来排查问题:
$ which python3
$ which pip3
$ python3 --version
$ pip3 --version
$ which python
$ which pip
$ python --version
$ pip --version
您可能只需要使用 pip 而不是 pip3 来安装 TensorFlow,或者使用 python 而不是 python3,前提是它们指向的是 Python 3 或更高版本。
AttributeError: 模块 'tensorflow' 没有属性 'version'
您可能正在包含名为 “tensorflow” 文件夹的目录中运行 Python。尝试在其他目录中运行 Python。
GPU 相关问题
如果您在运行 TensorFlow 程序时遇到以下错误:
ImportError: libcudart.so.7.0: 无法打开共享对象文件:没有这样的文件或目录
请确保您已按照 GPU 安装 说明 操作。如果您是从源代码编译的,并且未指定 CUDA 或 cuDNN 的版本,请尝试显式指定它们。
Protobuf 库相关问题
TensorFlow 的 pip 包依赖于 protobuf 的 pip 包版本 3.0.0b2。从 PyPI 下载的 protobuf pip 包(通过运行 pip install protobuf 获取)仅包含 Python 实现的协议序列化/反序列化功能,其速度比 C++ 实现慢 10 到 50 倍。Protobuf 还支持一个用于 Python 包的二进制扩展,该扩展提供了基于 C++ 的快速协议解析功能。然而,标准的纯 Python pip 包并不包含此二进制扩展。为此,我们创建了一个自定义的二进制 protobuf pip 包,其中包含了该二进制扩展。请按照以下步骤安装自定义的二进制 protobuf pip 包:
# Ubuntu/Linux 64 位:
$ pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/protobuf-3.0.0b2.post2-cp27-none-linux_x86_64.whl
# Mac OS X:
$ pip install --upgrade https://storage.googleapis.com/tensorflow/mac/protobuf-3.0.0b2.post2-cp27-none-any.whl
对于 Python 3:
# Ubuntu/Linux 64 位:
$ pip3 install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/protobuf-3.0.0b2.post2-cp34-none-linux_x86_64.whl
# Mac OS X:
$ pip3 install --upgrade https://storage.googleapis.com/tensorflow/mac/protobuf-3.0.0b2.post2-cp35-none-any.whl
请在通过 pip 安装完 TensorFlow 后再安装上述包,因为标准的 pip install tensorflow 会安装纯 Python 版本的 protobuf 包。而上述 pip 包将会覆盖现有的 protobuf 包。
请注意,该二进制 pip 包已经支持大于 64MB 的 protobuf 消息,这可以解决类似以下的错误:
[libprotobuf ERROR google/protobuf/src/google/protobuf/io/coded_stream.cc:207] 一个协议消息因过大(超过 67,108,864 字节)而被拒绝。若要增加限制(或关闭这些警告),请参阅 google/protobuf/io/coded_stream.h 中的 CodedInputStream::SetTotalBytesLimit() 方法。
无法导入名称 'descriptor'
ImportError: 跟踪记录(最近一次调用):
File "/usr/local/lib/python3.4/dist-packages/tensorflow/core/framework/graph_pb2.py", 第 6 行,在 <module> 中:
from google.protobuf import descriptor as _descriptor
ImportError: 无法导入名称 'descriptor'
如果您在升级到较新版本的 TensorFlow 时遇到上述错误,请尝试卸载 TensorFlow 和 protobuf(如果已安装),然后重新安装 TensorFlow(这也将安装正确的 protobuf 依赖项)。
找不到 setup.py
如果在运行 pip install 时遇到类似以下的错误:
...
IOError: [Errno 2] 没有这样的文件或目录:'/tmp/pip-o6Tpui-build/setup.py'
解决方法:升级 pip 的版本:
pip install --upgrade pip
根据 pip 的安装方式,可能需要使用 sudo。
SSLError: SSL_VERIFY_FAILED
如果在通过 URL 使用 pip 安装时遇到类似以下的错误:
...
SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败
解决方法:使用 curl 或 wget 手动下载 wheel 文件,然后在本地使用 pip 进行安装。
Jupyter Notebook 内核始终处于忙碌状态(Windows)
如果你在 Windows 上安装了 Docker Toolbox,但 Jupyter Notebook 无法正常运行(打开任何文件时内核都一直处于忙碌状态),可以尝试更换浏览器。有人使用 Edge 浏览器后解决了问题,而之前在 Chrome 和 Firefox 上一直无法正常工作。
此外,你还需要启用端口转发,具体步骤如下:
- 打开 VirtualBox。
- 点击你的默认 Docker 镜像。
- 点击“设置”。
- 选择“网络”。
- 点击“端口转发”。
- 添加一条名为 jupyter 的新规则,主机 IP 设置为 127.0.0.1,主机端口/目标端口设置为 8888。
- 现在你应该能够通过 localhost:8888 访问你的 Jupyter Notebook 应用程序,而无需再使用 192.168.xx.xx:8888。
其他问题!
常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器