TensorFlow 不仅仅是用来机器学习,它更可以用来模拟仿真。在这里,我们将通过模拟仿真几滴落入一块方形水池的雨点的例子,来引导您如何使用 TensorFlow 中的偏微分方程来模拟仿真的基本使用方法。
参考
http://wiki.jikexueyuan.com/project/tensorflow-zh/tutorials/pdes.html
https://stackoverflow.com/questions/28237210/image-does-not-display-in-ipython/42567537?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa
代码运行不了
修改如下
yum install libpng-devel freetype-devel -y
yum install tcl tk tix-devel -y
yum install tk-devel tcl-devel -y
yum -y install tkinter
virtualenv pianweifen
pip install --upgrade pip
#pip-10.0.1
pip install tensorflow
pip install matplotlib
pip install pillow
pip install ipython
pip install scipy
把display(Image(data=f.getvalue()))
改成
scipy.misc.imsave("testimg.jpg", a)
image = PIL.Image.open("testimg.jpg")
image.show()
# encoding: utf-8
#导入模拟仿真需要的库
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
#导入可视化需要的库
import PIL.Image
from cStringIO import StringIO
#from io import BytesIO
import scipy.misc
from IPython.display import clear_output, Image, display
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()
# f = BytesIO()
PIL.Image.fromarray(a).save(f, fmt)
# display(Image(data=f.getvalue()))
scipy.misc.imsave("testimg.jpg", a)
image = PIL.Image.open("testimg.jpg")
image.show()
#def DisplayArray(a, rng=[0 ,1]):
# plt.ion()
# a = (a - rng[0])/float(rng[1]-rng[0])*255
# a = np.uint8(np.clip(a, 0, 255))
# print(a)
# plt.imshow(a, cmap='gray')
# plt.pause(1)
# plt.close()
sess = tf.InteractiveSession()
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)
N = 500
# 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])
]
python hello.py
完整版还不完美的图片闪现的版本
# encoding: utf-8
#导入模拟仿真需要的库
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
#导入可视化需要的库
import PIL.Image
from cStringIO import StringIO
#from io import BytesIO
import scipy.misc
from IPython.display import clear_output, Image, display
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()
# f = BytesIO()
PIL.Image.fromarray(a).save(f, fmt)
#display(Image(data=f.getvalue()))
scipy.misc.imsave("testimg.jpg", a)
image = PIL.Image.open("testimg.jpg")
image.show()
sess = tf.InteractiveSession()
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)
N = 500
# 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])
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_))
# 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])
- 大小: 188.3 KB
分享到:
相关推荐
用SWF动画格式不模拟windows2000操作系统的安装,对初馺用户有较好的指导作用
在本项目中,我们主要探讨的是如何利用TensorFlow这一强大的深度学习框架来构建一个全连接神经网络模型,用于处理流体模拟数据的训练。TensorFlow是Google开发的一个开源库,广泛应用于机器学习和深度学习领域,它...
通过定义计算函数、偏微分方程,并开始仿真,研究者可以利用TensorFlow解决复杂系统模型的数值模拟问题。 最后,手册介绍了如何下载MNIST数据集,这是学习和实验中经常用到的步骤。掌握这些基础知识后,学习者将...
通过定义计算函数和偏微分方程,TensorFlow可以进行仿真和模拟。 TensorFlow的运作方式深入涉及到变量的创建、初始化、保存和恢复。这些都是在使用TensorFlow进行训练和预测时必须掌握的基础知识。TensorFlow允许...
这些源代码可能包含了用于创建图形界面的库(如Tkinter或PyQt)、神经网络库(如TensorFlow或PyTorch)以及用于处理神经网络仿真的算法。用户可以研究这些代码,理解其工作原理,甚至进行二次开发,以满足特定项目的...
书中提供的仿真实例可能涉及使用Python的深度学习框架,如TensorFlow、Keras或PyTorch,进行神经网络的构建、训练和评估。这些实例将帮助初学者理解理论知识,并掌握实际操作技巧。 通过阅读和实践《人工神经网络...
很抱歉,根据您提供的文件标题和描述,这似乎是一份针对高考英语复习的模拟试卷,主要服务于2021-2022学年的学生。然而,由于标签为"文档",并且没有提供具体试题或内容的详细信息,我无法直接生成关于详细IT知识点...
我已经使用P5.JS图形库和Tensorflow.js深度学习库创建了线性回归的仿真。 用户可以在运行时在画布上插入数据点,因此,最佳拟合线将更改其参数。 Tensorflow.js用于最小化损失函数。 sketch.js包含模拟的核心逻辑。
我已经使用P5.JS图形库和Tensorflow.js深度学习库创建了Logistic回归的仿真。 用户可以在画布上插入数据点以及在运行时更改数据点的类,因此二进制分类器行将更改其参数。 Tensorflow.js用于最小化损失函数。 sketch...
2. RL库:如`gym`库提供标准的RL环境,`tensorflow`和`pytorch`用于构建神经网络,`rl-stable-baselines`和`rllib`提供预封装的RL算法。 3. 与Simulink交互:使用MATLAB Engine for Python接口,可以在Python代码中...
神经网络仿真软件是一种用于模拟和设计神经网络模型的工具,它可以帮助用户理解、构建和测试各种类型的神经网络架构。在IT行业中,神经网络是人工智能的一个关键组成部分,尤其在机器学习和深度学习领域,它们被广泛...
在IT行业中,交通仿真模拟是应用广泛的一个领域,特别是在城市规划、交通管理以及自动驾驶系统的研究中。本项目聚焦于Python编程语言实现的交通仿真模型,包括道路模型、车辆模型以及驾驶模式模型。以下是对这些核心...
可能包括但不限于Python编程语言、SimPy等开源仿真库,以及可能的机器学习框架如TensorFlow或PyTorch,用于数据驱动的预测和优化。 3. **模型构建**:基于业务流程,构建精细的仿真模型,包括实体(如产品、设备、...
在探讨《模拟人类:计算机图形动画和控制》这一主题时,我们主要关注的是如何通过计算机科学技术来实现对人类行为、动作以及交互模式的仿真。该领域不仅涉及基础的图形渲染技术,还包括复杂的运动捕捉、物理模拟及...
在仿真环境中,使用NS3网络仿真软件,模拟了真实网络环境下的数据传输,并针对不同的网络性能指标进行优化。通过搭建和训练深度学习模型,可以对网络中的数据包进行智能路由,有效减少网络的平均时延和信令开销,...
import tensorflow as tf ''' 程序生成了一些三维数据, 然后用一个平面拟合它. ''' if __name__ == '__main__': x_data = np.float32(np.random.rand(2, 100)) y_data = np.dot([0.100, 0.200], x_data) + 0.300 ...
2.领域:智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,更多内容可点击博主头像 3.内容:标题所示,对于介绍可点击主页搜索博客 4.适合人群:本科,硕士...
在机器学习方面,Unity模拟环境可以配合深度学习框架,如TensorFlow或PyTorch,用于训练自动驾驶的神经网络模型。这些模型可以学习如何识别交通标志、预测其他车辆和行人的行为,以及如何做出安全的驾驶决策。通过...
报告需详细介绍拟采用的技术路线,例如使用哪种编程语言(如Python、C++),选用何种仿真软件(如MATLAB Simulink、ANSYS)以及如何集成AI模块(如深度学习框架TensorFlow或PyTorch)。此外,还需阐述技术的创新点和...