python,tensorflow线性回归Django网页显示Gif动态图

1.工程组成

2.urls.py

"""Django_machine_learning_linear_regression URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/2.1/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path(‘‘, views.home, name=‘home‘)
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path(‘‘, Home.as_view(), name=‘home‘)
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path(‘blog/‘, include(‘blog.urls‘))
"""
from django.contrib import admin
from django.urls import path
from app01 import views

urlpatterns = [
    path(‘admin/‘, admin.site.urls),
    path(‘index/‘, views.index),
    path(‘tu/‘, views.tu),

]

3.views.py

from django.shortcuts import render, HttpResponse
from app01 import linear_regression
import numpy as np
import tensorflow as tf
import os
# Create your views here.

def index(request):
    if request.method == ‘POST‘:
        num_points = 1000
        vectors_set = []
        for i in range(num_points):
            x1 = np.random.normal(0.0, 0.55)
            y1 = x1 * 0.1 + 0.3 + np.random.normal(0.0, 0.03)
            vectors_set.append([x1, y1])

        x_data = [v[0] for v in vectors_set]
        y_data = [v[1] for v in vectors_set]

        result = linear_regression.linear_regression(x_data, y_data)

        return render(request, ‘index.html‘, {‘result‘: result, ‘range‘:range(1,21)})

    else:
        return render(request, ‘index.html‘)

def tu(request):
    num = request.GET.get(‘num‘)
    print(num)

    base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    d = base_dir
    imagepath = os.path.join(d, "regression_res.gif")
    image_data = open(imagepath, "rb").read()
    return HttpResponse(image_data, content_type=‘gif‘)

4.index.py

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

</head>
<body>
    <form action="/index/" method="post">
        {% csrf_token %}
        <input type="submit" value="开始运算!">
    </form>
    {% if result.W != None %}

    <p>{{ result.W }} x + {{ result.b }}</p>

    <img src="/tu/?num={{ num }}" name="{{ num }}" title="图{{ num }}"  />

    {% endif %}

</body>
</html>

5.linear_regression.py

def create_gif(image_list, gif_name):
    import imageio
    frames = []
    for image_name in image_list:
        frames.append(imageio.imread(image_name))
    # Save them as frames into a gif
    imageio.mimsave(gif_name, frames, ‘GIF‘, duration=0.1)

def linear_regression(x_data, y_data):
    import tensorflow as tf
    import matplotlib.pyplot as plt

    W = tf.Variable(tf.random_uniform([1], -1.0, 1.0), name=‘W‘)
    b = tf.Variable(tf.zeros([1]), name=‘b‘)
    y = W*x_data + b

    loss = tf.reduce_mean(tf.square(y - y_data), name=‘loss‘)
    optimizer = tf.train.GradientDescentOptimizer(0.5)
    train = optimizer.minimize(loss, name=‘train‘)
    sess = tf.Session()
    init = tf.global_variables_initializer()
    sess.run(init)
    print(‘W=‘, sess.run(W), ‘b=‘, sess.run(b), ‘loss=‘, sess.run(loss))
    i = 0
    image_list = []
    for step in range(20):
        i = i+1
        sess.run(train)
        print(‘W=‘, sess.run(W), ‘b=‘, sess.run(b), ‘loss=‘, sess.run(loss))

        plt.xlim((-2, 2))
        plt.ylim((0.1, 0.5))
        plt.scatter(x_data, y_data, c=‘r‘)
        plt.plot(x_data, sess.run(W)*x_data + sess.run(b))
        plt.savefig("./static/"+str(i)+".png")
        plt.close()
        image_list.append("./static/"+str(i)+".png")

    create_gif(image_list, ‘regression_res.gif‘)

    result = {‘W‘: sess.run(W), ‘b‘: sess.run(b), ‘loss‘: sess.run(loss)}

    return result

  

  

原文地址:https://www.cnblogs.com/CK85/p/10249061.html

时间: 2024-10-18 01:21:53

python,tensorflow线性回归Django网页显示Gif动态图的相关文章

全面解读Python Web开发框架Django

全面解读Python Web开发框架Django Django是一个开源的Web应用框架,由Python写成.采用MVC的软件设计模式,主要目标是使得开发复杂的.数据库驱动的网站变得简单.Django注重组件的重用性和“可插拔性”,敏捷开发和DRY法则(Don’t Repeat Yoursef). 花了两周时间,利用工作间隙时间,开发了一个基于Django的项目任务管理Web应用.项目计划的实时动态,可以方便地被项目成员查看(^_^又 重复发明轮子了).从前台到后台,好好折腾了一把,用到:HTM

Python框架之Django学习笔记(五)

第一个Django网页小结 进来的请求转入/hello/. Django通过在ROOT_URLCONF配置来决定根URLconf. Django在URLconf中的所有URL模式中,查找第一个匹配/hello/的条目. 如果找到匹配,将调用相应的视图函数. 视图函数返回一个HttpResponse. Django转换HttpResponse为一个适合的HTTP response, 以Web page显示出来. 在url映射到函数部分用到了一些正则表达式的相关知识,在http://www.cnbl

Python Web开发框架Django

文章地址:http://game-lab.org/?p=357 花了两周时间,利用工作间隙时间,开发了一个基于Django的项目任务管理Web应用.项目计划的实时动态,可以方便地被项目成员查看(^_^又重复发明轮子了).从前台到后台,好好折腾了一把,用到:HTML.CSS.JavaScript.Apache.Python.mod_wsgi.Django.好久不用CSS和JavaScript了,感到有点生疏了,查了无数次手册.后台Django开发环境的搭建也花了不少时间和精力.记录下来,免得以后走

Python Web框架Django (三)

第三章 视图和URL配置 前一章中,我们解释了如何建立一个 Django 项目并启动 Django 开发服务器. 在这一章,你将会学到用Django创建动态网页的基本知识. 你的第一个基于Django的页面: Hello World 正如我们的第一个目标,创建一个网页,用来输出这个著名的示例信息: Hello world. 如果你曾经发布过Hello world页面,但是没有使用网页框架,只是简单的在hello.html文本文件中输入Hello World,然后上传到任意的一个网页服务器上. 注

西游之路——python全栈——Django~1

知识预览 Django基本命令 二 路由配置系统(URLconf) 三 编写视图 四 Template 五 数据库与ORM admin的配置 一 什么是web框架? 框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统,简单地说,就是你用别人搭建好的舞台来做表演. 对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端.   最简单的Web应用就是先把HTML用文件保存好,用一个现

python之路 django基础

Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. 一.基本配置 1.创建Django程序 终端命令:django-admin startproject sitename IDE创建Django程序时,本质上都是自动执行上述命令 上述的sitename是自己定义的项目名称! 其他常用命令: python manage.py runserver 0.

Python Web框架Django (二)

第二章:入门 由于现代Web开发环境由多个部件组成,安装Django需要几个步骤. 这一章,我们将演示如何安装框架以及一些依赖关系. 因为Django就是纯Python代码,它可以运行在任何Python可以运行的环境,甚至是手机上! 但是这章只提及Django安装的通用脚本. 我们假设你把它安装在桌面/笔记本电脑或服务器. 往后,在第12章,我们将讨论如何部署Django到一个生产站点. Python 安装 Django本身是纯Python编写的,所以安装框架的第一步是确保你已经安装了Pytho

windows上Python开发--3.Django的基础知识

最近两天下了班,没事学习了django的开发,今天做个总结.其实大家可以从百度,google搜到一些django的入门视频,初步了解一下django的框架.学习一些基础的概念和知识.本篇主要是对自己这两天做的做个总结. 1.创建第一个views.py 上一篇文章我们在windows上搭建好了django的开发环境并建立一个测试demo. 在settings.py的同级目录下新建views.py目录.并输入以下代码 from django.http import HttpResponse def

Python攻关之Django(一)

课程简介: Django流程介绍 Django url Django view Django models Django template Django form Django admin (后台数据库管理工具) 1 Django流程介绍 MTV模式 著名的MVC模式:所谓MVC就是把web应用分为模型(M),控制器(C),视图(V)三层:他们之间以一种插件似的,松耦合的方式连接在一起. 模型负责业务对象与数据库的对象(ORM),视图负责与用户的交互(页面),控制器(C)接受用户的输入调用模型和