在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ 人工智能/ 偏微分方程 <a class="md-anchor" id="AUTOGENERATED-partial-differentia
BibTex 引用<a class="md-anchor" id="AUTOGENERATED-bibtex-citation"
術(shù)語(yǔ)表
自定義數(shù)據(jù)讀取 <a class="md-anchor" id="AUTOGENERATED-custom-data-reade
使用 GPUs <a class="md-anchor" id="AUTOGENERATED-using-gpus"></a>
Vector Representations of Words <a class="md-anchor" id="AUTOGEN
TensorFlow 個(gè)人學(xué)習(xí)心得
共享變量<a class="md-anchor" id="AUTOGENERATED-sharing-variables"></
應(yīng)用實(shí)例 <a class="md-anchor" id="AUTOGENERATED-example-uses"></a>
其他資源 <a class="md-anchor" id="AUTOGENERATED-additional-resources
偏微分方程 <a class="md-anchor" id="AUTOGENERATED-partial-differentia
TensorBoard:可視化學(xué)習(xí) <a class="md-anchor" id="AUTOGENERATED-tensorb
TensorFlow運(yùn)作方式入門(mén) <a class="md-anchor" id="AUTOGENERATED-tensorfl
常見(jiàn)問(wèn)題 <a class="md-anchor" id="AUTOGENERATED-frequently-asked-que
MNIST機(jī)器學(xué)習(xí)入門(mén) <a class="md-anchor" id="AUTOGENERATED-mnist-for-ml-
曼德布洛特(Mandelbrot)集合 <a class="md-anchor" id="AUTOGENERATED-mande
變量:創(chuàng)建、初始化、保存和加載
TensorBoard: 圖表可視化 <a class="md-anchor" id="AUTOGENERATED-tensor
簡(jiǎn)介 <a class="md-anchor" id="AUTOGENERATED-introduction"></a>
張量的階、形狀、數(shù)據(jù)類(lèi)型<a class="md-anchor" id="AUTOGENERATED-tensor-ranks-
線程和隊(duì)列 <a class="md-anchor" id="AUTOGENERATED-threading-and-queue
下載與安裝 <a class="md-anchor" id="AUTOGENERATED-download-and-setup"
常見(jiàn)問(wèn)題匯總
綜述
綜述 Overview
TensorFlow 相關(guān)資源
數(shù)據(jù)讀取 <a class="md-anchor" id="AUTOGENERATED-reading-data"></a>
遞歸神經(jīng)網(wǎng)絡(luò) <a class="md-anchor" id="AUTOGENERATED-recurrent-neural-n
深入MNIST <a class="md-anchor" id="AUTOGENERATED-deep-mnist-for-ex
增加一個(gè)新 Op <a class="md-anchor" id="AUTOGENERATED-adding-a-new-op"
卷積神經(jīng)網(wǎng)絡(luò) <a class="md-anchor" id="AUTOGENERATED-convolutional-neur
基本使用 <a class="md-anchor" id="AUTOGENERATED-basic-usage"></a>
MNIST 數(shù)據(jù)下載 <a class="md-anchor" id="AUTOGENERATED-mnist-data-dow

偏微分方程 <a class="md-anchor" id="AUTOGENERATED-partial-differentia

TensorFlow 不僅僅是用來(lái)機(jī)器學(xué)習(xí),它更可以用來(lái)模擬仿真。在這里,我們將通過(guò)模擬仿真幾滴落入一塊方形水池的雨點(diǎn)的例子,來(lái)引導(dǎo)您如何使用 TensorFlow 中的偏微分方程來(lái)模擬仿真的基本使用方法。

注:本教程最初是準(zhǔn)備做為一個(gè) IPython 的手冊(cè)。

譯者注:關(guān)于偏微分方程的相關(guān)知識(shí),譯者推薦讀者查看 網(wǎng)易公開(kāi)課 上的《麻省理工學(xué)院公開(kāi)課:多變量微積分》課程。

基本設(shè)置

首先,我們需要導(dǎo)入一些必要的引用。

#導(dǎo)入模擬仿真需要的庫(kù)
import tensorflow as tf
import numpy as np

#導(dǎo)入可視化需要的庫(kù)
import PIL.Image
from cStringIO import StringIO
from IPython.display import clear_output, Image, display

然后,我們還需要一個(gè)用于表示池塘表面狀態(tài)的函數(shù)。

def DisplayArray(a, fmt='jpeg', rng=[0,1]):
  """Display an array as a picture."""
  a = (a - rng[0])/float(rng[1] - rng[0])*255
  a = np.uint8(np.clip(a, 0, 255))
  f = StringIO()
  PIL.Image.fromarray(a).save(f, fmt)
  display(Image(data=f.getvalue()))

最后,為了方便演示,這里我們需要打開(kāi)一個(gè) TensorFlow 的交互會(huì)話(huà)(interactive session)。當(dāng)然為了以后能方便調(diào)用,我們可以把相關(guān)代碼寫(xiě)到一個(gè)可以執(zhí)行的Python文件中。

sess = tf.InteractiveSession()

定義計(jì)算函數(shù)

def make_kernel(a):
  """Transform a 2D array into a convolution kernel"""
  a = np.asarray(a)
  a = a.reshape(list(a.shape) + [1,1])
  return tf.constant(a, dtype=1)

def simple_conv(x, k):
  """A simplified 2D convolution operation"""
  x = tf.expand_dims(tf.expand_dims(x, 0), -1)
  y = tf.nn.depthwise_conv2d(x, k, [1, 1, 1, 1], padding='SAME')
  return y[0, :, :, 0]

def laplace(x):
  """Compute the 2D laplacian of an array"""
  laplace_k = make_kernel([[0.5, 1.0, 0.5],
                           [1.0, -6., 1.0],
                           [0.5, 1.0, 0.5]])
  return simple_conv(x, laplace_k)

定義偏微分方程

首先,我們需要?jiǎng)?chuàng)建一個(gè)完美的 500 × 500 的正方形池塘,就像是我們?cè)诂F(xiàn)實(shí)中找到的一樣。

N = 500

然后,我們需要?jiǎng)?chuàng)建了一個(gè)池塘和幾滴將要墜入池塘的雨滴。

# Initial Conditions -- some rain drops hit a pond

# Set everything to zero
u_init = np.zeros([N, N], dtype="float32")
ut_init = np.zeros([N, N], dtype="float32")

# Some rain drops hit a pond at random points
for n in range(40):
  a,b = np.random.randint(0, N, 2)
  u_init[a,b] = np.random.uniform()

DisplayArray(u_init, rng=[-0.1, 0.1])

http://wiki.jikexueyuan.com/project/tensorflow-zh/images/pde_output_1.jpg" alt="jpeg" />

現(xiàn)在,讓我們來(lái)指定該微分方程的一些詳細(xì)參數(shù)。

# Parameters:
# eps -- time resolution
# damping -- wave damping
eps = tf.placeholder(tf.float32, shape=())
damping = tf.placeholder(tf.float32, shape=())

# Create variables for simulation state
U  = tf.Variable(u_init)
Ut = tf.Variable(ut_init)

# Discretized PDE update rules
U_ = U + eps * Ut
Ut_ = Ut + eps * (laplace(U) - damping * Ut)

# Operation to update the state
step = tf.group(
  U.assign(U_),
  Ut.assign(Ut_))

開(kāi)始仿真

為了能看清仿真效果,我們可以用一個(gè)簡(jiǎn)單的 for 循環(huán)來(lái)遠(yuǎn)行我們的仿真程序。

# Initialize state to initial conditions
tf.initialize_all_variables().run()

# Run 1000 steps of PDE
for i in range(1000):
  # Step simulation
  step.run({eps: 0.03, damping: 0.04})
  # Visualize every 50 steps
  if i % 50 == 0:
    clear_output()
    DisplayArray(U.eval(), rng=[-0.1, 0.1])

http://wiki.jikexueyuan.com/project/tensorflow-zh/images/pde_output_2.jpg" alt="jpeg" />

看?。?雨點(diǎn)落在池塘中,和現(xiàn)實(shí)中一樣的泛起了漣漪。

原文鏈接:http://tensorflow.org/tutorials/pdes/index.md 翻譯:@wangaicc 校對(duì):@tensorfly