Coder Social home page Coder Social logo

pdesolverviz's Introduction

PDESolverViz

Visulization of PDE's Deep learning Solution

Pipeline

用户输入柏森方程表达式以及边界条件 表达式的左侧变化少,即Laplace算子,右侧侧变化比较多 边界条件一般是一个y表达式,一个y导数表达式,和两者的组合 我们目前只考虑二维柏森方程

公式输入

公式的输入方式:laTex公式,MathType公式

最后公式要被转化成Pytorch或者TF算子

技术选型

可视化端

  1. JS可视化库调研:
  • 通用科学绘图:
    G2/F2 蚂蚁 Echarts 百度 fusioncharts D3.js
    Echarts的可定制性比不上D3.js
  • 3D:
    Three.js, evercraft 在展示3d的方程解空间的时候可能会用上
  1. 场景
    科学可视化UI,可视化方程 - Echarts
    神经网络训练UI - D3.js
    计算域UI,边值设计 - ???

前端

  1. React.js, vue.js
    可以认为是主打前端的框架,是一个js的库
    react的核心是virutal DOM(组件化) + JSX
    vue是响应式的框架,如其名,强势在view的处理这一块
  2. Angular.js
    一个client-side MV*框架,适合处理大型项目,学习成本高
  3. Node.js
    Node其实算在后端里,因为是server-side框架,自带一个v8引擎。其作用和java后端很像

前端可以优先选择使用vue.js,学习曲线比较好,轻量化。

后端

使用Python-based框架,因为后台的计算使用PyTorch/Tensorlflow框架,这样可以保持最大的兼容性和学习成本
候选的对象有Flask,Django,Tornado, Twisted. 前期会优先选择Flask。
因为Django更适合典型的web的复杂平台,和我们的需求可能不太一致。所以会放弃。 而Tornado和Twisted会更快速一点,但是有学习成本,后期优化的时候再考虑。

Nodejs也是一个很好的选择,不过js在处理科学计算接口的时候应该会超级麻烦

redis是用缓存手段解决数据库高并发场景,而kafka是类似消息队列方式解耦两个系统的消息(有点像ros),目前看来不需要用这两项技术,除非碰到性能瓶颈。

优化预期

  1. 神经网络训练UI
    后端在训练时可能要实现实时和前端通讯
  2. 科学可视化UI

参考构架 - TFMeter项目

typescript + d3.js,除此之外就没有使用任何框架,因为dl算法部分是用ts手写的,也没有用到后端服务器

敏捷开发周期

pdesolverviz's People

Contributors

hendrickzhou avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.