Skip to content
WONGCW 網誌
  • 首頁
  • 論壇
  • 微博
  • 壁紙下載
  • 免費圖床
  • 視頻下載
  • 聊天室
  • SEO工具
  • 支援中心
  • 表格製作
  • More
    • 在線名片
    • 網頁搜索
    • 天氣預報
    • 二維碼生成器
    • WordPress 插件及主題下載
  • Search Icon

WONGCW 網誌

記錄生活經驗與點滴

玩转 Jupyter Notebook

玩转 Jupyter Notebook

2018-09-20 Comments 0 Comment

安装 Jupyter Notebook

任务时间:20min

Jupyter Notebook 简介

Jupyter Notebook 是一个开源的 Web 应用程序,可以用来创建和共享包含动态代码、方程式、可视化及解释性文本的文档。

其应用于包括:数据整理与转换,数值模拟,统计建模,机器学习等等。

更多信息请见 官网 。

检查 Python 环境

CentOS 7.2 中默认集成了 Python 2.7,可以通过下面命令检查 Python 版本:

python --version

安装 pip

pip 是一个 Python 包管理工具,我们使用 yum 命令来安装该工具:

yum -y install python-pip

使用下面命令升级 pip 到最新版本:

pip install --upgrade pip

安装相关依赖

安装 Jupyter 过程中还需要其他一些依赖,我们使用以下命令安装他们:

yum -y groupinstall "Development Tools"
yum -y install python-devel

配置虚拟环境

安装 virtualenv

我们将为 Jupyter 创建一个独立的虚拟环境,与系统自带的 Python 隔离开来。为此,先安装 virtualenv 库:

pip install virtualenv

创建虚拟环境

创建一个专门的虚拟环境,并直接激活进入该环境:

virtualenv venv
source venv/bin/activate

使用 pip 安装 Jupyter

我们使用 pip 命令安装 Jupyter:

pip install jupyter

配置 Jupyter Notebook

任务时间:10min

建立项目目录

我们先为 Jupyter 相关文件准备一个目录:

mkdir /data/jupyter
cd /data/jupyter

再建立一个目录作为 Jupyter 运行的根目录:

mkdir /data/jupyter/root

准备密码密文

由于我们将以需要密码验证的模式启动 Jupyter,所以我们要预先生成所需的密码对应的密文。

生成密文

使用下面的命令,创建一个密文的密码:

python -c "import IPython;print IPython.lib.passwd()"

执行后需要输入并确认密码,然后程序会返回一个 'sha1:...' 的密文,我们接下来将会用到它。

修改配置

生成配置文件

我们使用 --generate-config 来参数生成默认配置文件:

jupyter notebook --generate-config --allow-root

生成的配置文件在 /root/.jupyter/ 目录下,可以点此编辑配置。

修改配置

然后在配置文件最下方加入以下配置:

c.NotebookApp.ip = '*'
c.NotebookApp.allow_root = True
c.NotebookApp.open_browser = False
c.NotebookApp.port = 8888
c.NotebookApp.password = u'刚才生成的密文(sha:...)'
c.ContentsManager.root_dir = '/data/jupyter/root'

其中:

  • c.NotebookApp.password 请将上一步中密文填入此项,包括 sha: 部分。

你也可以直接配置或使用 Nginx 将服务代理到 80 或 443 端口。

启动 Jupyter Notebook

任务时间:10min

直接启动

使用以下指令启动 Jupyter Notebook:

jupyter notebook

此时,访问 http://<您的 CVM IP 地址>:8888 即可进入 Jupyter 首页。

创建 Notebook

  • 进入【首页】首先需要输入前面步骤中设置的密码。
  • 然后点击右侧的【 new 】,选择 Python2 新建一个 notebook,这时跳转至编辑界面。
  • 现在我们可以看到 /data/jupyter/root/ 目录中出现了一个 Untitled.ipynb 文件,这就是我们刚刚新建的 Notebook 文件。我们建立的所有 Notebook 都将默认以该类型的文件格式保存。

后台运行

直接以 jupyter notebook 命令启动 Jupyter 的方式在连接断开时将会中断,所以我们需要让 Jupyter 服务在后台常驻。

先按下 Ctrl + C 并输入 y 停止 Jupyter 服务,然后执行以下命令:

nohup jupyter notebook > /data/jupyter/jupyter.log 2>&1 &

该命令将使得 Jupyter 在后台运行,并将日志写在 /data/jupyter/jupyter.log 文件中。

准备后续步骤的 Notebook

为了后面实验中实验室的步骤检查器能够更好的工作,此时我们使用以下命令预先创建几份 ipynb 文件:

cd /data/jupyter/root
cp Untitled.ipynb first.ipynb
cp Untitled.ipynb matplotlib.ipynb
cp Untitled.ipynb tensorflow.ipynb
rm -f Untitled.ipynb

使用 Jupyter Notebook

任务时间:30min

  • 接下来的步骤中如遇到步骤检查未通过,请按下 Ctrl + S 保存,等待步骤检查器确认。

编辑界面

点击这里打开 first.ipynb 编辑界面。

Jupyter Notebook 的编辑界面主要由 工具栏 和 内容编辑区 构成。

下方编辑区,由 Cell 组成。每个 notebook 由多个 Cell 构成,每个 Cell 都可以有不同的用途。

Code Cell

新建的 notebook 中包含一个代码 Cell(Code Cell),以 [ ] 开头,在该类型的 Cell 中,可以输入任意代码并执行。如输入:

1 + 1

然后按下 Shift + Enter 键, Cell 中代码就会被执行,光标也会移动至下个新 Cell 中。我们接着输入:

print('Hello Jupyter')

再次按下 Shift + Enter ,可以看到这次没有出现 Out[..] 这样的文字。这是因为我们只打印出来了某些值,而没有返回任何的值。

  • 按下 Ctrl + S 保存,等待步骤检查器确认。

Heading Cell *

新版本中已经没有独立的 Heading Cell,现在标题被整合在 Markdown Cell 之中。

如果我们想在顶部添加一个的标题。选中第一个 Cell,然后点击 Insert -> Insert Cell Above。

你会发现,文档顶部马上就出现了一个新的 Cell。点击在工具栏中 Cell 类型(默认为 Code),将其变成 Markdown。接着在 Cell 中写下:

# My First Notebook

然后按下 Shift + Enter 键,便可以看到生成了一行一级标题。

  • 与 Markdown 语法相同,使用多个#将改变标题级别。

Markdown Cell

上一步中我们已经尝试了使用了 Markdown Cell。在该 Cell 中,除标题外其他语法同样支持。比如,我们在一个新的 Cell 中插入以下文本:

This is a **table**:

| Name | Value |
|:----:|:-----:|
|    A |     1 |
|    B |     2 |
|    C |     3 |

然后按下 Shift + Enter,即可渲染出相应内容。

高级用法 – HTML

Markdown Cell 中同样接受 HTML 代码。这样,你就可以实现更加丰富的样式及结构、添加图片等等。

例如,如果想在 notebook 中添加 Jupyter 的 logo,并且添加 2px 的黑色边框,放置在单元格左侧,可以这样编写:

<img src="http://jupyter.org/assets/nav_logo.svg" style="border: 2px solid black; float:left" />

然后按下 Shift + Enter,即可渲染出图片。

高级用法 – LaTex

Markdown Cell 还支持 LaTex 语法。在 Cell 中插入以下文本:

$$int_0^{+infty} x^2 dx$$

同样按下 Shift + Enter,即可渲染出公式。

导出

notebook 支持导出导出为 HTML、Markdown、PDF 等多种格式。

如点击 File -> Download as -> HTML(.html),即可下载到 HTML 版本的 notebook。

导出 PDF

其中,导出 PDF 需要其他包的支持,我们需要使用以下命令安装这些依赖:

yum -y install pandoc texlive-*
  • 注:直接导出 PDF 时 Jupyter 可能会忽略一些 Cell,建议先导出为 HTML,然后使用浏览器将其转为 PDF。

集成 Matplotlib(可选)

任务时间:30min

Matplotlib 是 Python 中最常用的可视化工具之一,可以非常方便地创建许多类型的 2D 图表和基本的 3D 图表。

安装 Matplotlib

我们使用 pip 来安装 Matplotlib:

pip install matplotlib

测试 Matplotlib

我们使用另一个 notebook (matplotlib.ipynb)来测试 Matplotlib。

点击这里打开 matplotlib.ipynb 编辑界面。

魔法命令

在第一个 Cell 中,我们插入并执行:

%matplotlib inline

这是指定 matplotlib 图表的显示方式的魔法命令。inline 表示将图表嵌入到 notebook 中。

测试

  • 关于 Matplotlib 的使用请移步其官网。

在接下来 Cell 中,我们插入几个官方示例测试:

1.plot_bmh:

示例代码:/plot_bmh.py
from numpy.random import beta
import matplotlib.pyplot as plt


plt.style.use('bmh')


def plot_beta_hist(ax, a, b):
    ax.hist(beta(a, b, size=10000), histtype="stepfilled",
            bins=25, alpha=0.8, density=True)


fig, ax = plt.subplots()
plot_beta_hist(ax, 10, 10)
plot_beta_hist(ax, 4, 12)
plot_beta_hist(ax, 50, 12)
plot_beta_hist(ax, 6, 55)
ax.set_title("'bmh' style sheet")

plt.show()

Shift + Enter 执行 Cell,即可看到绘制出的图像。

2.whats_new_99_mplot3d:

示例代码:/whats_new_99_mplot3d.py
import random

import numpy as np
import matplotlib.pyplot as plt
from matplotlib import cm
from mpl_toolkits.mplot3d import Axes3D

X = np.arange(-5, 5, 0.25)
Y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)

fig = plt.figure()
ax = Axes3D(fig)
ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.viridis)

plt.show()

同样执行 Cell,即可看到绘制出的图像。

动手试试

最后,我们来尝试绘制一个二次函数图像,你可以自行实现,也可以参考下面代码:

示例代码:/my.py
import matplotlib.pyplot as plt
import numpy as np

x = np.arange(-10, 11)
y = x**2

plt.plot(x, y)
plt.show()

搭配 TensorFlow(可选)

任务时间:30min

TensorFlow™ 是一个采用数据流图,用于数值计算的开源软件库。它灵活的架构让你可以在多种平台上展开计算,例如台式计算机中的一个或多个CPU(或GPU),服务器,移动设备等等。

TensorFlow 最初由 Google 大脑小组的研究员和工程师们开发出来,用于机器学习和深度神经网络方面的研究,但这个系统的通用性使其也可广泛用于其他计算领域。

安装 TensorFlow

我们使用 pip 安装相关依赖及 Tensorflow

pip install protobuf
pip install tensorflow

测试 TensorFlow

  • 关于 TensorFlow 的使用请移步其官网,这里只是测试其在 Jupiter 中是否可用。

点击这里打开 tensorflow.ipynb 编辑界面。

在 Cell 中加入以下代码(整理自官网 MNIST 教程):

示例代码:/tensorflow.py
from tensorflow.examples.tutorials.mnist import input_data
import tensorflow as tf

# The MNIST Data
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)

# Regression
x = tf.placeholder(tf.float32, [None, 784])
W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))
y = tf.nn.softmax(tf.matmul(x, W) + b)

# Training
y_ = tf.placeholder(tf.float32, [None, 10])
cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y), reduction_indices=[1]))
train_step = tf.train.GradientDescentOptimizer(0.05).minimize(cross_entropy)

sess = tf.InteractiveSession()

tf.global_variables_initializer().run()

for _ in range(1000):
    batch_xs, batch_ys = mnist.train.next_batch(100)
    sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})

# Evaluating
correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))

print(sess.run(accuracy, feed_dict={x: mnist.test.images, y_: mnist.test.labels}))

按下 Shift + Enter,学习过程结束后可以看到输出了准确率(92% 左右)。

自由体验

任务时间:20min

接下来你可以自由体验搭建起的云端 Jupyter Notebook。

完成实验

恭喜!您已经成功搭建起了一个云端的 Jupyter Notebook 环境。你可以选择保留已经运行的服务,继续进行 Jupyter Notebook 的使用。

分享此文:

  • 分享到 Twitter(在新視窗中開啟)
  • 按一下以分享至 Facebook(在新視窗中開啟)
  • 分享到 WhatsApp(在新視窗中開啟)
  • 按一下以分享到 Telegram(在新視窗中開啟)
  • 分享到 Pinterest(在新視窗中開啟)
  • 分享到 Reddit(在新視窗中開啟)
  • 按一下即可分享至 Skype(在新視窗中開啟)
  • 按一下即可以電子郵件傳送連結給朋友(在新視窗中開啟)
  • 點這裡列印(在新視窗中開啟)

相關


Linux資訊, 教學資源

Post navigation

PREVIOUS
搭建微信 AI 机器人
NEXT
基于 Ubuntu 搭建微信小程序服务

發表迴響 取消回覆

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料。

More results...

Generic filters
Exact matches only
Search in title
Search in content
Search in excerpt
Filter by 分類
網站公告
Featured
限時免費
ESET NOD32
WINDOWS 10 &11 INSIDER PREVIEW
Windows 軟件下載
系統軟件
辦公軟件
圖像處理
影音媒體
網絡軟件
應用軟件
Mac 軟件下載
安卓軟件下載
網絡資訊
Mac資訊
Linux資訊
VPS資訊
NASA資訊
金融資訊
WhatsApp Stickers教學
WordPress資訊
WeChat資訊
PHP資訊
Plesk資訊
TensorFlow
教學資源
開源程序
網頁工具
SEO工具
醫療健康
旅遊及消閒
其他資訊
Content from
Content to
2018 年 9 月
一 二 三 四 五 六 日
 12
3456789
10111213141516
17181920212223
24252627282930
« 8 月   10 月 »

分類

  • 網站公告
  • 限時免費
  • ESET NOD32
  • WINDOWS 10 &11 INSIDER PREVIEW
  • Windows 軟件下載
  • 系統軟件
  • 辦公軟件
  • 圖像處理
  • 影音媒體
  • 網絡軟件
  • 應用軟件
  • Mac 軟件下載
  • 安卓軟件下載
  • 網絡資訊
  • Mac資訊
  • Linux資訊
  • VPS資訊
  • NASA資訊
  • WhatsApp Stickers教學
  • WordPress資訊
  • WeChat資訊
  • PHP資訊
  • Plesk資訊
  • TensorFlow
  • 教學資源
  • 開源程序
  • 網頁工具
  • SEO工具
  • 醫療健康
  • 旅遊及消閒
  • 其他資訊

彙整

近期文章

  • 體驗了微軟的ChatGPT後我覺得谷歌、百度麻煩了 2023-02-09
  • 新版必應比ChatGPT牛?實測:更有人情味兒 2023-02-09
  • 蘋果任命首位首席人力官管理16萬員工大軍 2023-02-09
  • 迪士尼宣布裁員7000人股價盤後大漲 2023-02-09
  • SpaceX明天將嘗試進行創紀錄的火箭測試33個引擎一齊點火 2023-02-09
  • 任天堂:當前沒計劃對硬件和軟件降價 2023-02-09
  • 可用陽光激活的”絲瓜水凝膠”在淨化水方面表現出色 2023-02-09
  • NASA成功完成RS-25火箭發動機的全長熱火測試 2023-02-09
  • 一種新的鋰-空氣電池設計有望實現前所未有的能量密度 2023-02-09
  • 現在Twitter Blue用戶可以寫4000字的推文 2023-02-09

熱門文章與頁面︰

  • DP vs HDMI 誰才是遊戲玩家最佳選擇?
  • ESET NOD32 LICENSE KEY (UPDATED 2023-01-17)
  • Explorer Patcher:讓Windows 11恢復Windows 10的行為特徵
  • 打車叫到特斯拉不會開門很尷尬?官方介紹開關門方法
  • 舊機福音:極限精簡Windows 10系統Tiny10升級C盤僅佔4.3GB
  • Autodesk AutoCAD 2021 正式版註冊版-簡體/繁體中文/英文版
  • 微軟強化Game Bar:可顯示Xbox手柄剩餘電量
  • 移動版RTX 3050與3050 Ti跑分曝光較RTX 1650 Ti提升顯著
  • Google Chrome瀏覽器意外出現Status_Access_Violation錯誤而崩潰
  • Office 2013-2021 C2R Install v7.3.1 正式版-Office 2013/2016/2019/2021自定義組件安裝工具

投遞稿件

歡迎各界人士投遞稿件到admin@wongcw.com

請提供以下資料:

1.你的名字

2.你的電郵

3.分類目錄

4.文章標題

5.文章摘要

6.文章內容

7.文章來源

 

聯繫我們

查詢,投稿,商務合作:
​admin@wongcw.com
​技術支援:
​support@wongcw.com
​客户服務:
​cs@wongcw.com

QQ群:833641851

快帆

MALUS

極度掃描

DMCA.com Protection Status

WONGCW 網誌

  • 免責聲明
  • 捐助我們
  • ThemeNcode PDF Viewer
  • ThemeNcode PDF Viewer SC
  • Events

服務器提供

本站使用之服務器由ikoula提供。

聯繫我們

查詢,投稿,商務合作:
​admin@wongcw.com
​技術支援:
​support@wongcw.com
​客户服務:
​cs@wongcw.com

QQ群:833641851

© 2023   All Rights Reserved.
X