RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

TensorFlow在機器學(xué)習(xí)和模擬偏微分方程中的應(yīng)用

Tensorflowers ? 來源:cg ? 2018-12-06 14:07 ? 次閱讀

TensorFlow 不僅僅可以用于機器學(xué)習(xí)。在此教程中,我們所舉的例子(較為尋常)是使用 TensorFlow 模擬偏微分方程的行為(https://en.wikipedia.org/wiki/Partial_differential_equation)。我們將模擬幾個雨滴落在方形池塘水面的情形。

基本設(shè)置

需要導(dǎo)入一些庫。

#Import libraries for simulationimport tensorflow as tfimport numpy as np#Imports for visualizationimport PIL.Imagefrom io import BytesIOfrom IPython.display import clear_output, Image, display

將池塘水面的狀態(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 = BytesIO() PIL.Image.fromarray(a).save(f, fmt) clear_output(wait = True) display(Image(data=f.getvalue()))

接下來,我們發(fā)起一個互動式 TensorFlow 會話,以方便練習(xí)。如果我們使用可執(zhí)行的 .py 文件進行模擬,則常規(guī)會話一樣可行。

sess = tf.InteractiveSession()

計算便利函數(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)

定義 PDE

我們的池塘是一個完美的 500 x 500 正方形,就像自然界中的大多數(shù)池塘一樣。

N = 500

接下來,我們創(chuàng)建池塘,并在其表面落入一些雨滴。

# Initial Conditions -- some rain drops hit a pond

# Set everything to zerou_init = np.zeros([N, N], dtype=np.float32)ut_init = np.zeros([N, N], dtype=np.float32)# Some rain drops hit a pond at random pointsfor 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])

現(xiàn)在,我們指定微分方程的詳細信息。

# Parameters:

# eps -- time resolution# damping -- wave dampingeps = tf.placeholder(tf.float32, shape=())damping = tf.placeholder(tf.float32, shape=())# Create variables for simulation stateU = tf.Variable(u_init)Ut = tf.Variable(ut_init)# Discretized PDE update rulesU_ = U + eps * UtUt_ = Ut + eps * (laplace(U) - damping * Ut)# Operation to update the statestep = tf.group( U.assign(U_), Ut.assign(Ut_))

運行模擬

情況變得有趣起來 - 使用簡單的 for 循環(huán)讓其持續(xù)運行。

# Initialize state to initial conditions

tf.global_variables_initializer().run()# Run 1000 steps of PDEfor i in range(1000): # Step simulation step.run({eps: 0.03, damping: 0.04}) DisplayArray(U.eval(), rng=[-0.1, 0.1])

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 機器學(xué)習(xí)
    +關(guān)注

    關(guān)注

    66

    文章

    8406

    瀏覽量

    132557
  • tensorflow
    +關(guān)注

    關(guān)注

    13

    文章

    329

    瀏覽量

    60527

原文標題:TensorFlow 不僅用于機器學(xué)習(xí),還能模擬偏微分方程

文章出處:【微信號:tensorflowers,微信公眾號:Tensorflowers】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Matlab偏微分方程工具箱應(yīng)用說明

    poimesh 矩形區(qū)域上產(chǎn)生規(guī)則的網(wǎng)絡(luò)refinemesh 細化三角形網(wǎng)絡(luò)wbound 寫一個邊界描述文件wgeom 寫一個幾何描述文件pdecont 畫輪廓圖pdemesh 畫偏微分方程的三角形
    發(fā)表于 09-22 15:26

    Matlab求解微分方程(ODEs/PDEs)

    本帖最后由 A670521546 于 2011-7-8 10:29 編輯 常微分方程(ODEs)的MATLAB數(shù)值解法》偏微分方程(PDEs)的MATLAB數(shù)值解法》Z變換和差分方程
    發(fā)表于 07-08 08:42

    計算機Fortran編程實現(xiàn)偏微分方程拉普拉斯變換

    的勢能的行為。直角坐標, 已知為。。。?(V,xyz二級三變量齊次偏微分方程=0)(9.32)穩(wěn)態(tài)電流的條件下,勢能還滿足拉普拉斯方程
    發(fā)表于 08-14 20:38

    偏微分方程式數(shù)值解之計算機算法詳解

    。*******************************************************************本章節(jié) 偏微分方程(計算機數(shù)值方法語言Fortran解答)Pg.lp343導(dǎo)論 框架1---- -----偏微分方程常常發(fā)生在實踐
    發(fā)表于 08-29 14:31

    偏微分方程式數(shù)值解之計算機Fortran算法詳解附圖(續(xù)i)

    偏微分方程式數(shù)值解之計算機Fortran算法詳解附圖(續(xù)i) 內(nèi)容與附圖頁碼一致,續(xù)如下:*********************** 粵港澳大灣區(qū) 2020-8-29
    發(fā)表于 08-29 20:44

    偏微分方程式數(shù)值解之計算機Fortran算法詳解附圖(續(xù)ii)

    偏微分方程式數(shù)值解之計算機Fortran算法詳解附圖(續(xù)ii) 內(nèi)容與附圖頁碼一致,續(xù)如下: ******************************粵港澳大灣區(qū)2020-08-29
    發(fā)表于 08-29 21:14

    微分方程的MAtLAB解法

    摘要:對一些不能求解解析解的常微分方程偏微分方程進行精確求解是非常困難的,探討了用MATLAB方法對此類方程進行求解,結(jié)合實例介紹了MATLAB數(shù)值計算的方法,先將物體的運
    發(fā)表于 01-08 21:24 ?61次下載

    微分方程復(fù)習(xí),常微分方程pdf

    微分方程復(fù)習(xí),常微分方程pdf:微分方程的一般概念線性常微分方程的性質(zhì)一階線性常微分方程二階線性常系數(shù)
    發(fā)表于 04-23 22:08 ?0次下載

    微分方程式的建立與求解

    微分方程式的建立與求解:復(fù)習(xí)求解系統(tǒng)微分方程的經(jīng)典法物理系統(tǒng)的模型微分方程的列寫n 階線性時不變系統(tǒng)的描述求解系統(tǒng)微分方程的經(jīng)典法一.物理系統(tǒng)的模型
    發(fā)表于 09-30 19:30 ?0次下載

    基于偏微分方程的閃光照相圖像修補算法

    針對閃光照相底片圖像可能含有缺陷的問題,提出了一種基于偏微分方程的閃光照相圖像修補算法,該算法曲率驅(qū)動擴散(CDD)方法的基礎(chǔ)上,引入變系數(shù)的狆?Laplac
    發(fā)表于 03-05 14:17 ?22次下載

    基于分數(shù)階偏微分方程圖像處理應(yīng)用設(shè)計

    分數(shù)階偏微分方程圖像處理的應(yīng)用已受到了廣泛的關(guān)注,尤其圖像去噪和圖像超分辨率(SR)重建方面,目前的研究成果已顯示了分數(shù)階應(yīng)用的優(yōu)勢與效果。對分數(shù)階微積分在圖像處理
    發(fā)表于 12-06 10:50 ?1次下載

    異性四階偏微分方程耦合二階偏微分方程的圖像放大算法

    針對增強圖像的弱邊緣、細節(jié)紋理和消除二階偏微分方程圖像平滑部分的階梯效應(yīng)問題,提出一種各向異性四階偏微分方程耦合二階偏微分方程的圖像放大
    發(fā)表于 01-12 14:38 ?0次下載

    模擬集成電路之頻率響應(yīng)分析零極點

    零極點的理解是模擬電路最關(guān)鍵的基礎(chǔ)之一,信號與系統(tǒng)都會講自然響應(yīng),自然響應(yīng)就是偏微分方程的通解部分,而受迫響應(yīng)則是偏微分方程的特解。本文將詳解零極點與頻率響應(yīng)之間的關(guān)系。
    發(fā)表于 02-21 10:26 ?6w次閱讀
    <b class='flag-5'>模擬</b>集成電路之頻率響應(yīng)分析零極點

    谷歌AI:學(xué)習(xí)更好的偏微分方程仿真方法

    研究人員已經(jīng)開始探索使用ML高性能計算方面提供持續(xù)改進的可能,以解決偏微分方程和科學(xué)計算的困難計算問題。
    的頭像 發(fā)表于 07-30 10:20 ?3487次閱讀

    Matlab/Simulink建模詳解:一階時變偏微分方程的求解

    這一次日篤小編來教大家如何在simulnk里面,求解偏微分方程(Partial Differential Equation-PDE)。
    的頭像 發(fā)表于 06-25 16:03 ?3814次閱讀
    Matlab/Simulink建模詳解:一階時變<b class='flag-5'>偏微分方程</b>的求解
    RM新时代网站-首页