首页 技术 正文
技术 2022年11月9日
0 收藏 336 点赞 2,995 浏览 3028 个字

1.工程组成

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

2.urls.py

"""Django_machine_learning_linear_regression URL ConfigurationThe `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 viewsurlpatterns = [
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 }}" alt="" /> {% 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

  

  

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,088
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,564
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,413
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,186
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,822
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,905