Django配置

Django静态资源配置及配置模版 本位主要手把手带你了解Django静态资源配置及配置模版,涉及资源路由配置,图片,视频媒体资源部署,模版配置,继承,模板导入.....图文示例,一看就懂。由于 STATIC_URL 的特殊性,在开发中会造成诸多不便,比如将静态文件夹存放在项目的根目录以及定义多个静态文件夹等,这时候可以在配置文件 settings.py 中设置 STATICFILES_DIRS 属性。一般情况下,STATIC_URL 是设置静态文件的路由地址,如 CSS 样式文件、JavaScript 文件以及常用图片等。 阅读详情

1.4 上传文件、异步、初始化脚本

项目中的静态文件处理

  1. Nginx

    Nginx 处理静态资源速度非常快, 并且自身还带有缓存.

    但需要注意, 分布式部署的多台 Nginx 服务器上, 静态资源需要互相同步

    80: Nginx -> {server config} -> django:8080

    ​ -> Static : folders

    ​ -> 云存储

    独立域名:static.baidu.com

    1. 过去:一个浏览器只能向同一个域名发起两个并发的连接
      1. 一个浏览器向同一个域名能发起的并发请求4-10
    2. 提高网页端的加载速度,改进用户体验
    3. 图片域名会用很多个img0…img7
    4. 更深的一点:独立域名就可以省掉传cookie了
  2. 第三方的 CDN 服务:阿里云、51CDN(网宿)、蓝汛

    1. 分发:
      1. 分发的时候,我们自己只需要发到自己的一台服务器上
      2. CDN服务商负责把这个资源分发到全网的各个节点
    2. 用户在访问时:
      1. 请求域名
        1. CNAME -> GeoDNS
        2. 根据地理位置返回离用户最近的 IP
        3. GeoDNS
          1. static.somedomain.com - > china - > u.v.w.x
          2. static.somedomain.com - > amarica - > a.b.c.d
          3. static.somedomain.com - > canada - > 1.2.3.4
        4. 分发
          1. 先把资源传到一个服务器上:此服务器称为源服务器
          2. 主动分发
            1. 主动从 源服务器上 copy 到 其他服务器上
          3. 回源请求
            1. 用户向 static.somedomain.com 发请求时
              1. 命中 某个服务器
              2. 该服务器有此文件,直接还给用户
              3. 该服务器无此文件,此服务器向源服务器发请求,拿到文件后,再还给用户,缺点:第一个用户需要等。
              4. 模拟用户发一次请求,服务器上文件就有了
      2. 用什么指标来分析和衡量一个CDN性能好坏呢?
        1. 命中数
        2. 回源数
        3. 边缘节点的延迟高
          1. 5G低延迟:10ms以内
          2. 4G延迟:50-100ms
        4. 边缘节点的流量
        5. 配置错误
      3. 用户请求自然是从离他最近的服务器下载

    [外链图片转存失败(img-NiOTs6sk-1566996969798)(img/CDN.png)]

    CDN 的全称是 Content Delivery Network, 即内容分发网络.

    它依靠部署在各地的边缘服务器, 通过中心平台的负载均衡、内容分发、调度等功能模块, 使用户就近获取所需内容, 降低网络拥塞, 提高用户访问响应速度和命中率. CDN 的关键技术主要有内容存储和分发技术.

  3. 云存储

    • 常见的云存储有:亚马逊 S3 服务、阿里云的 OSS 、七牛云 等
  4. 面试题:

    1. 你了解CDN吗?能讲讲原理么?

    七牛云接入

    1. 注册七牛云账号
    2. 创建存储空间
    3. 获取相关配置
      • AccessKey
      • SecretKey
      • Bucket_name
      • Bucket_URL
    4. 安装 qiniu SDK:pip install qiniu
    5. 根据接口文档进行接口封装
    6. 按照需要将上传、下载接口封装成异步任务
    7. 程序处理流程
      1. 服务端上传方式
        1. 用户图片上传服务器
        2. 服务器将图片上传到七牛云
        3. 上传成功后,拼接 avatar 的图片 url 地址:七牛云的Bucket_URL/filename,将 avatar 的图片 url 存入数据库
      2. 客户端上传
        1. 客户端图片直接上传到云服务
        2. 客户端将图片地址告诉服务端,服务端更新数据库
        3. 其实存在一个安全隐患

异步任务

  • 同步:主线顺序执行,遇到中间有费时的操作,会卡住等待
    • 存钱,必须等数据都写好没问题了才返回
    • 游戏动作,必须按顺序完成的,Boss的最后一血,到底算谁砍的,算错了麻烦就大了
  • 异步:主线顺序执行,遇到中间有费时的操作,就丢出一个分支去单独执行,主线不会等待,会继续往下执行,给用户更好的体验
    • 发短信发邮件,单独开一个分支去发就好了,不需要用户等到结果
    • 上传视频,传完后要编码,这个不需要用户等,单独开分支去编码就可以了
    • 运行一个费时的报告,不需要用户等,可以在报告就绪的时候给用户发一个消息提醒
    • 网页加载:图片就是异步后加载的,图片下载完之前,先出一个占位符,没必要非等头部的图片都出来了才往下加载

Celery 及异步任务的处理

  1. 模块组成[外链图片转存失败(img-hDsbybUR-1566996969800)(1.4-上传文件、异步、初始化脚本.assets/image-20190801103623657.png)]

    [外链图片转存失败(img-D9GUYUMe-1566996969801)(img/celery.png)]

    • 任务模块 Task

      包含异步任务和定时任务. 其中, 异步任务通常在业务逻辑中被触发并发往任务队列, 而定时任务由 Celery Beat 进程周期性地将任务发往任务队列.

    • 消息中间件 Broker

      Broker, 即为任务调度队列, 接收任务生产者发来的消息(即任务), 将任务存入队列. Celery 本身不提供队列服务, 官方推荐使用 RabbitMQ 和 Redis 等.

    • 任务执行单元 Worker

      Worker 是执行任务的处理单元, 它实时监控消息队列, 获取队列中调度的任务, 并执行它.

    • 任务结果存储 Backend

      Backend 用于存储任务的执行结果, 以供查询. 同消息中间件一样, 存储也可使用 RabbitMQ, Redis 和 MongoDB 等.

  2. 安装

    pip install 'celery[redis]'
    
  3. 创建实例

    import time
    from celery import Celery
    
    broker = 'redis://127.0.0.1:6379'
    backend = 'redis://127.0.0.1:6379/0'
    app = Celery('my_task', broker=broker, backend=backend)
    
    @app.task
    def add(x, y):
        time.sleep(5)     # 模拟耗时操作
        return x + y
    
  4. 启动 Worker

    celery worker -A tasks --loglevel=info
    
  5. 调用任务

    from tasks import add
    
    add.delay(2, 8)
    
  6. 常规配置

broker_url = 'redis://127.0.0.1:6379/0'
broker_pool_limit = 1000  # Borker 连接池, 默认是10

timezone = 'Asia/Shanghai'
accept_content = ['pickle', 'json']

task_serializer = 'pickle'
result_expires = 3600  # 任务过期时间

result_backend = 'redis://127.0.0.1:6379/0'
result_serializer = 'pickle'
result_cache_max = 10000  # 任务结果最大缓存数量

worker_redirect_stdouts_level = 'INFO'

Celery 工作的流程

  1. 一次性的配置工作

    1. 安装:pip install ‘celery[redis]’
    2. 常规配置:
      1. …
  2. 创建实例

    1. worker.__init__.py

    2. import os
      
      from celery import Celery
      
      from worker import config
      
      os.environ.setdefault("DJANGO_SETTINGS_MODULE", "swiper.settings")
      
      # 创建 celery 的实例
      celery_app = Celery('swiper')
      
      # 配置来自 worker.config
      celery_app.config_from_object(config)
      
      # 自动发现任务
      celery_app.autodiscover_tasks()
      
  3. 给需要异步的方法,添加装饰器

    1. from worker import celery_app
      
      # 给需要异步的方法,添加装饰器
      @celery_app.task
      def function_name():
      
  4. 发布异步任务(并未真正执行):

    1. function_name.delay(params)
  5. 后台启动异步任务工作(真正的执行):

    1. celery worker -A worker --loglevel=info
  6. 面试题:

    1. Celery任务执行出错如何处理?

Social 功能概述

  1. 需求
    1. 交友模块
      • 获取推荐列表
      • 喜欢 / 超级喜欢 / 不喜欢
      • 反悔 (每天允许反悔 3 次)
      • 查看喜欢过我的人
    2. 好友模块
      • 查看好友列表
      • 查看好友信息

开发中的难点

  1. 滑动需有大量用户,如何初始化大量用户以供测试?
  2. 推荐算法
  3. 如何从推荐列表中去除已经滑过的用户
  4. 滑动操作,如何避免重复滑动同一人
  5. 如果双方互相喜欢,需如何处理
  6. 好友关系如何记录,数据库表结构如何设计?
  7. 反悔接口
    1. “反悔”都应该执行哪些操作
    2. 每日只允许“反悔” 3 次应如何处理
    3. 后期运营时,如何方便的修改反悔次数
  8. 内部很深的逻辑错误如何比较方便的将错误码返回给最外层接口

关系分析

  1. 滑动者与被滑动者

    • 一个人可以滑动很多人
    • 一个人可以被多人滑动
    • 结论: 同表之内构建起来的逻辑上的多对多关系,Swiper实际上是一个关系表
  2. 用户与好友

    • 一个用户有多个好友
    • 一个用户也可以被多人加为好友
    • 结论: 同表之内构建起来的逻辑上的多对多关系, Friend 表实际上就是一个关系表

模型设计参考

  1. Swiped (划过的记录)

    FieldDescription
    uid用户自身 id
    sid被滑的陌生人 id
    mark滑动类型
    time滑动的时间
  2. Friend (匹配到的好友)

    FieldDescription
    uid1好友 ID
    uid2好友 ID

类方法与静态方法

  • method

  • 通过实例调用

    • 可以引用类内部的 任何属性和方法
  • classmethod

    • 无需实例化
    • 可以调用类属性和类方法
    • 无法取到普通的成员属性和方法
  • staticmethod

    • 无需实例化
    • 无法取到类内部的任何属性和方法, 完全独立的一个方法

利用 Q 对象进行复杂查询

from django.db.models import Q

# AND
Model.objects.filter(Q(x=1) & Q(y=2))

# OR
Model.objects.filter(Q(x=1) | Q(y=2))

# NOT
Model.objects.filter(~Q(name='kitty'))

1.5代码:

  1. python manage.py makemigerations

  2. python manage.py migerate

  3. ./scripts/init.py

  4. django shell,用django shell调试

  5. from lib.http import render_json
    from social import logics
    from social.models import Swiped
    import datetime
    
    from django.core.cache import cache
    
    from swiper import config
    from common import errors
    from user.models import User
    from social.models import Swiped
    from social.models import Friend
    
    userid = 2218
    swiped = Swiped.objects.filter(uid=userid).only('sid')
    swiped_uid_list = [sw.sid for sw in swiped]
    swiped_uid_list.append(userid)
    
    user = User.objects.get(id=uid)
    
    users = User.objects.filter(
            location=user.profile.location,
            sex=user.profile.dating_sex,
            birth_year__range=[1984, 1999]
        ).exclude(id__in=swiped_uid_list)[:20]
    users
    

    编程范式:

    1. 结构化编程
      1. 顺序思维
      2. 代码 + 数据结构
    2. 面向对象编程
      1. 对象思维
      2. OOP
    3. 函数式编程
      1. 数学思维
配置PyCharm启动Django项目 启动Django项目的方式有两种,一种是通过python manage.py runserver命令来启动,还有一种就是通过配置PyCharm来直接启动项目。 1.通过Add…来进入配置页面 2.根据步骤进入Django server 3.根据步骤进行配置 如果点击ok后没有fix,也可在settings中输入Django进入 根据步骤操作 配置好后就可以通过上图位置直接运行。 ... 阅读详情

相关推荐

Ubuntu离线情况下安装gcc编译器

Ubuntu离线情况下安装gcc编译器1.系统版本2.安装说明3.异常处理 1.系统版本 (1)Ubuntu系统版本:20.04.1LTS; (2)gcc编译器版本:gcc-9.3.0(下载链接为https://download.youkuaiyun.com/download/qq_18350351/13762214); 当前可找到的gcc最新版本为gcc-10,但是笔者在安装gcc-10版本时发现一些依赖项无法安装,因此选取了gcc-9版本。如果是在联网情况下安装,直接使用apt相关的安装指令即可。 2.安装说明 安

GreenHand的博客 3933

django 数据库迁移(migrate)应该知道的一些事

命令首先数据库迁移的两大命令: python manage.py makemigrations & python manage.py migrate 前者是将model层转为迁移文件migration,后者将新版本的迁移文件执行,更新数据库。 这两中命令调用默认为全局,即对所有最新更改的model或迁移文件进行操作。如果想对部分app进行操作,就要在其后追加app name:$ python

stonesola的博客 4万+

gmsv源代码c语言,石器时代ABLua的原理、简介、过程、运用、收发

操作原理(一)服务端:服务器源文件客户端:客户所操作的程序(既是游戏客户端)接口:既是某项功能(例如:鼠标点击,文字发送,战斗,观战,人物动作等)返回的值ABlua:在源代码中添加的整套引擎作为回调接口--lua所实现的功能是基于服务端源码添加的接口由该接口与客户端发送封包实现功能源码里是否有ABlua回调接口?例如:源码里的gmsv/battle.c文件(既是战斗回调文件)以下为简单描述C给予l...

weixin_35223575的博客 2408

关于Python Django migrate、makemigra...

关于Python Django migrate、makemigra...

IOTOS的博客 1984

冰河木马实验(V8.4)

简述: 百科词条 冰河木马开发于1999年,跟灰鸽子类似,在设计之初,开发者的本意是编写一个功能强大的远程控制软件。但一经推出,就依靠其强大的功能成为了黑客们发动入侵的工具,并结束了国外木马一统天下的局面,跟后来的灰鸽子等等成为国产木马的标志和代名词。 冰河的服务器端程序为G-server.exe,客户端程序为G-client.exe,默认连接端口为7626。其中攻击者使用G-client.e...

野原新之助 1万+

逆向实战:手把手教你分析Google DroidGuard虚拟机的加密与反调试(附Python脚本)

本文深入解析Google DroidGuard虚拟机的加密机制与反调试策略,提供从环境配置到逆向分析的完整实战指南。通过IDA Pro、Frida等工具链,详细剖析DroidGuard的信号拦截、内存校验等保护机制,并附Python脚本实现自动化分析,助力Android安全研究人员突破GMS核心组件的安全防护。

weixin_32428571的博客 313

Django migrate 命令

django migrate

Mr_WoLong 4281

从示波器波形看懂CAN/RS485/RS422:一个TVS管放错位置,通信全挂的教训

本文通过示波器波形分析,深入探讨了CAN/RS485/RS422通信系统中TVS管布局错误的故障诊断与解决方案。文章详细解析了错误布局导致的波形特征,如信号钳位、阻抗失配等,并提供了正确的保护电路设计方案和终端匹配技术,帮助工程师快速定位和解决通信故障。

weixin_30555515的博客 346

Django的Migrate和Makemigrations讲解

一、前言 本专栏主要分享一些Django restframework相关的知识,主要侧重于前后端分离下,如何使用DRF来做后台开发 二、migrate和makemigrations详解和实操 当我们在django中添加或修改了数据库model后,一般需要执行makemigrations、migrate把我们的model类生成相应的数据库表,或修改对应的表结构。这是非常方便的。 但我们在实际使用中执行这两个命令经常会出现意向不到的报错。下面为你详细讲解这两个命令,让你更从容的使用他们! 1.makemigra

曲鸟 1万+

基于YOLOv11的无人机目标检测系统:实现drone、bird、aircraft多类别识别

采用改进的YOLOv11网络结构,平衡检测精度和速度融合VisDrone和UAVDT数据集,增强模型泛化能力设计多尺度特征融合模块,提升小目标检测性能开发直观的UI界面,便于实际部署和应用。

YOLO 324

用urdf给自己的ROS小车编写模型

3.3 使用urdf编写自己的ROS小车模型 3.3.1 常见的ROS小车结构有哪些? 下面就是常见的ROS小车,相信在大家的脑海里已经有了自己小车的样子,下面我和大家一起使用urdf对ros小车建模。 这里只对urdf进行简单介绍,然后就带大家使用urdf最基础的标签,建立机器人的urdf机器人模型。关于更多细节,请参看官网:http://wiki.ros.org/urdf/Tutorials 3.3.2 什么是urdf?建模的原因? 什么是urdf? URDF(Unified Robot Descri

「小白学移动机器人」一个专注分享移动机器人相关知识的公众号! 1万+

web项目 day04(一)

Social 模块开发 功能概述 交友模块 获取推荐列表 喜欢 / 超级喜欢 / 不喜欢 反悔 (每天允许返回 3 次) 查看喜欢过我的人 好友模块 查看好友列表 查看好友信息 开发中的难点 滑动需有大量用户,如何初始化大量用户以供测试? 推荐算法 如何从推荐列表中去除已经滑过的用户 滑动操作,如何避免重复滑动同一人 如果双方互相喜欢,需如何处理 好友关系如何记录,数据库表结构如...

沉觞的博客 190

Misc-RAR隐写

题目来自于:XCTF的SimpleRAR,由于涉及到许多新知识,所以写篇小文子记录一下。 一、下载完后是一个压缩包。 里面就有一个flag.txt,打开之后发现有一串字符是flag is not here,而且我们查看他的文件大小,只要十六字节,绝对不可能再藏着什么信息了。 然后把压缩包拉到010editor里面,发现一下子出来好多新的内容,很明显是有夹杂着的附加文件。 二、rar文件头信息。 rar 是由一个一个 block 组成的,每个 block 有以下几个部分 ...

admin的博客 1361

django配置DJANGO_SETTINGS_MODULE

DJANGO_SETTINGS_MODULE 使用Django时要通知Django当前使用的是哪个配置文件。可以改变环境变量 DJANGO_SETTINGS_MODULE 实现这一点。 当我们使用manage.py运行起本地的web服务器时,为了让Django知道使用哪个配置文件,就指定了DJANGO_SETTINGS_MODULE的环境变量的路径,我们看下manage.py import os import sys if __name__ == "__main__": # test1是我的主应用名字

我就叫贝塔 1万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Django5.1(64)—— Django 配置

Django配置文件是一个Python模块,用于定义应用的所有配置项。关键点包括:1. 通过DJANGO_SETTINGS_MODULE环境变量指定配置文件;2. 配置优先采用大写变量,如DEBUG、ALLOWED_HOSTS等;3. 默认配置来自django/conf/global_settings.py,自定义配置会覆盖默认值;4. 在代码中应通过django.conf.settings访问配置;5. 独立脚本需先调用settings.configure()或设置DJANGO_SETTINGS_MODU

专注于各种资源、教程,免费分享 998

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Django的配置详解

–总结Django中使用到的配置,以及在什么情况下进行什么样的配置 基础认识 Django 的设置文件包含你安装的Django 的所有配置,设置文件只是一个Python 模块,带有模块级别的变量。 比如下面图片展示的设置: 注意,如果项目在上线的时候,是不能将DEBUG设置为True,也就是说,你就必须将Debug=False,如果你设置DEBUG 为False,那么你应该正确设置ALLOWE...

gymaisyl的博客 1653

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

windows下pydev中配置Django

  前些天一直在用vim下学习django,今天搬到了myeclipse+pydev下,遇到了点麻烦搜到下面这文章写的还不错就转了过来。补充:1. pydev插件没什么好说的,去官网在线或下载后安装皆可。2. 配置python,myeclipse-window-prefrences-pydev-InterpreterPython在右侧新建选择python.exe的路径,选择后再加载包时注意加载系...

风萧流年 www.mxiangw.com 293

配置 Django

Django项目的设置文件位于项目同名目录下,名叫settings.py。这个模块,集合了整个项目方方面面的设置属性,是项目启动和提供服务的根本保证。 一、简述 settings.py文件本质上是一个Python模块,带有模块级别的变量。 下面是一些示例设置: ALLOWED_HOSTS = ['www.example.com'] DEBUG = False DEFAULT_FRO...

weixin_34210740的博客 112

[Python]Django 配置

pycharm中打开Django项目并配置虚拟环境运行项目;项目路径BASE_DIR;密钥配置SECRET_KEY;调试模式DEBUG;域名访问权限ALLOWED_HOSTS;子应用列表INSTALLED_APPS;静态资源路由STATIC_URL;静态资源集合STATICFILES_DIRS;资源部署STATIC_ROOT;媒体资源MEDIA;配置模板文件夹templates;Django项目配置jinja2模板引擎;Django项目配置MySQL数据库;中间件MIDDLEWARE;配置redis数据库

emmmm..... 3569

Django中channels的配置

django项目配置channels,并且完成websocket协议的测试

m0_58186573的博客 2505

【Django】Ubuntu中配置Django环境

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录​ 一,创建django虚拟环境。1,创建python虚拟环境2,创建django项目。3,配置远程连接4,下载项目文件 ​ 一,创建django虚拟环境。 1,创建python虚拟环境 在虚拟机上创建python虚拟环境(linux) mkvirtualenv -p /usr/python3 虚拟环境名 2,创建django项目。 1.安装django(选择安装django2.1.x最新的一个版本2.1.10) pip ins.

weixin_53950583的博客 5860

django配置redis

Redis使用:1安装redis,2安装redis扩展django-redis,3安装django-redis-sessions 启动redis 设置密码 config set requirepass '密码' auth 123456 无法创建TCP 1. redis-cli.exe 2.shutdown 如果出现 (error) NOAUTH Authentication required.,则需要验证之前设置的密码(没出现请忽略第三步) 3.auth 你的密码 4.exit 5.r..

m0_62520968的博客 1951

Django 加载settings配置

manage.py 设置DJANGO_SETTINGS_MODULE环境变量 调用django.setup()启动 import os, sys def main(): os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'MyProject.settings') try: from django.core.management import execute_from_command_line except Impor

BSSZDS930的博客 1356

pycharm中django的配置

1.配置数据库 在settings.py中 DATABASES = { ‘default’: { ‘ENGINE’: ‘django.db.backends.mysql’, ‘NAME’: ‘sqlname’, ‘USER’: ‘user_name’, ‘PASSWORD’: ‘password’, ‘HOST’: ‘192.168.14.24’, ‘PORT’: ‘3306’, } } 2.配置...

weixin_45250558的博客 540

Django 日志配置

Django日志配置解读

sbdd6556的博客 1360
上一篇: Django缓存、验证码、登录、表单验证
下一篇: social模块开发
Are you ready
博客等级 码龄8年 312粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值