赶在元旦当天!10分钟用Python批量定制化发送元旦祝福邮件!

元旦假期!10分钟用Python批量定制化发送元旦祝福邮件! 现实生活中,若要针对每个人进行邮件的定制化,群发给公司客户、内部员工、亲戚朋友,则需更加高级的邮件发送方式。 我们可以通过HTML制作一封精美的元旦祝福邮件,但是邮件的内容——比如姓名、祝福语等应该怎样动态渲染呢?答案是jinja2. jinja2 是一个Python 的模板引擎,使用jinja2,我们能够在邮件HTML中设定占位符,在Python发送邮件的时候,将指定文本渲染到该占位符中,实现动态渲染的目的。 举一个jinja2的简单例子: from jinja2 import Template na. 阅读详情

AI派在读学生小姐姐Beyonce

Java实战项目练习群

长按识别下方二维码,按需求添加

扫码添加Beyonce小姐姐

扫码关注

进Java学习大礼包

现实生活中,如果只是发邮件给自己,简陋的格式是可以接受的,但若要针对每个人进行邮件的定制化,群发给公司客户、内部员工、亲戚朋友,则需更加高级的邮件发送方式。

我们可以通过HTML制作一封精美的元旦祝福邮件,但是邮件的内容——比如姓名、祝福语等应该怎样动态渲染呢?答案是jinja2.

jinja2 是一个Python 的模板引擎,使用jinja2,我们能够在邮件HTML中设定占位符,在Python发送邮件的时候,将指定文本渲染到该占位符中,实现动态渲染的目的。

举一个jinja2的简单例子:

from jinja2 import Template

name = 'Peter'
age = 34

tm = Template("My name is {{ name }} and I am {{ age }}")
msg = tm.render(name=name, age=age)

print(msg)

使用 {{}} 圈起来的是占位符,称之为模板字符串。模板字符串呈现两个变量:名称和年龄,在这个例子中,硬编码了name和age的值传入模板,得到输出:

My name is Peter and I am 34

在本篇文章中,我将教大家如何通过Html及Python+jinja2给你的亲朋好友们定制元旦祝福邮件。

本文所有素材及源代码均可以在此下载:
https://pythondict.com/download/python-new-year-mail/

1.准备

开始之前,你要确保Python和pip已经成功安装在电脑上。

此外,推荐大家用VSCode编辑器。

准备输入命令安装依赖,如果你没有VSCode编辑器,Windows环境下打开 Cmd (开始-运行-CMD),苹果系统环境下请打开 Terminal (command+空格输入Terminal),如果你用的是VSCode编辑器或Pycharm,可以直接在下方的Terminal中输入命令:

pip install jinja2
pip install yagmail

2.编写HTML

将需要发送的邮件模板的HTML编写好。并将占位符变量提前写入HTML中。由于我的HTML文件过大,这里就不完全展示了,只展示几个关键变量。

为简化教程的复杂度,并尽可能覆盖到知识点,这里我们使用4个变量:

1.LOGO图片(让你更好地理解图片是如何渲染到HTMl里并发邮件)
2.背景图片
3.祝福对象
4.祝福语言

首先,是图片变量的配置:

<tr>
    <td valign="left" width="50%" class="logo sub-gd" style="padding-left:0;">
        <h1>
            <img src="data:image/png;base64, {{pythondict_img}}">
        </h1>
    </td>
</tr>

由于我们需要发送html形的邮件,因此像代码这样将图片转码为base64再发送是最方便的。

其中,base64部分用jinja2语法 {{}} 包起来,中间就是变量名,一会render渲染的时候就会将base64渲染进来。

背景图片的配置比较特殊,使用 base64 渲染的话QQ邮箱会自动过滤为#号,因此必须使用url的形式:

<td valign="middle"style="background-image: url({{backgroud}});">

其次是祝福对象和祝福语言的配置:

<h2>
    {{name}}
    <br>
    祝您2021年元旦快乐
</h2>
<p>
    {{bless}}.
</p>

使用 {{}} 包裹变量,name是祝福的对象,bless是祝福语。这里简化了代码,还有许多样式要配置详细的大家可以看源代码中的 index_detail.html.

对了,我们源代码里包括两份html,一份是 index_detail.html 是未经过压缩的源代码,还有一份是 index.html,是被压缩过的源代码。

为什么要压缩HTML呢?因为邮箱客户端在解析HTML的时候,有可能会将换行符解析成<br>,因此压缩HTML不保留任何空格和换行符是最保险的做法。

详细的HTML代码,大家可以看源代码中的 index_detail.html.

3.Python代码

class Mail:
    """
    邮件相关类
    """

    def log(self, content):
        now_time = time.strftime(
            "%Y-%m-%d %H:%M:%S", time.localtime()
        )
        print(f'{now_time}: {content}')

    def sendmail(self, html, title, receivers):
        """
        发送邮件
        Arguments:
            html {str} -- 邮件正文(html)
            title {str} -- 邮件标题
            receivers {list} -- 邮件接收者,数组
        """

        yag = yagmail.SMTP(
            host='您的邮箱SMTPHOST', user='您的邮箱',
            password='您的邮箱密码', smtp_ssl=True
        )

        yag.send(receivers, title, html)
        self.log("邮件发送成功")

此外,为了渲染图片,需要将图片转化为base64,这个方法是这样的:

def get_image_base64(path):
    """
    获得图片的base64编码

    Args:
        path (str): 图片路径

    Returns:
        str: base64编码
    """
    import base64
    f = open(path, "rb")
    base64_data = base64.b64encode(f.read())
    f.close()
    return base64_data.decode("utf-8")

当然,最重要的地方是下面这段代码,需要针对每个人定制祝福语,我们可以采用字典的数据结构来保存数据:

bless_info = {
    "admin@pythondict.com": {
        "pythondict_img": get_image_base64("./images/pythondict.png"),
        "name": "实用宝典",
        "background": "https://背景图片.jpg",
        "bless": "愿所有的幸运与您不期而遇..",
        "title": "祝宝典哥明年粉丝破十万"
    },
    "test@qq.com": {
        "pythondict_img": get_image_base64("./images/pythondict.png"),
        "name": "老王",
        "background": "https://背景图片.jpg",
        "bless": "祝您女儿明年考研顺顺利利,全家幸福安康..",
        "title": "老王,祝您元旦快乐!"
    },
}

可以看到 bless_info 字典里的每个key是发送对象的邮箱,而这些 key 对应的value 中就有需要渲染到邮件的变量: pythondict_img, name, background 及 祝福语bless. 最后一个变量title,是用于指定邮件标题的。

这样,渲染+发送邮件做起来就方便多了:

tm = Template(open('./index.html', encoding="utf-8").read())
for mail in bless_info:
    msg = tm.render(bless_info[mail])
    Mail().sendmail(html=msg, title=bless_info[mail]["title"], receivers=[mail])

Mail().sendmail():是我们的发送邮件函数,应该不必多说。

bless_info[mail]:是需要渲染的变量,这里面的变量少了可不行,多了没关系。

bless_info[mail]["title"]:就是刚刚在字典里指定的最后一个变量 title,

由于 sendmail() 函数里的 receivers 是支持多人的,因此这里需要以数组的形式传入函数。

不过这里还有一个有趣的改进,如果你需要用同一个模板邮件发送给同一家人,你可以这么做:

bless_info = {
    ...,
    "test1@qq.com,test2@qq.com,test3@qq.com": {
        "pythondict_img": get_image_base64("./images/pythondict.png"),
        "name": "老王一家",
        "background": "https://背景图片.jpg",
        "bless": "祝王小女明年考研顺顺利利,老王全家幸福安康,吉祥如意..",
        "title": "老王一家,祝你们元旦快乐!"
    },
}

tm = Template(open('./index.html', encoding="utf-8").read())
for mail in bless_info:
    msg = tm.render(bless_info[mail])
    Mail().sendmail(html=msg, title=bless_info[mail]["title"], receivers=mail.split(","))

没错,只需要在key里将这一家人的邮箱用逗号分隔开,然后receivers里改为mail.split(","),你就能实现同一份邮件发给一家人的功能,是不是非常方便?

大家可以自己找喜欢的背景图片,也可以用我在代码里已给大家提供的图片。想要去除LOGO的话,直接将pythondict_img设为空,或者设为你自己的卡片即可。

在源代码目录下运行代码:

python mail.py

即可成功发送邮件,快打开编辑器试一下吧(记得先测试)!

我们的文章到此就结束啦,如果你喜欢今天的Python 实战教程,请持续关注AI派哦~

文末福利

各位猿们,还在为记不住API发愁吗,哈哈哈,最近发现了国外大师整理了一份Python代码速查表和Pycharm快捷键sheet,火爆国外,这里分享给大家。

这个是一份Python代码速查表

下面的宝藏图片是2张(windows && Mac)高清的PyCharm快捷键一览图

怎样获取呢?可以添加我们的AI派团队的Beyonce小姐姐

一定要备注【高清图】哦

????????????????????

➕我们的Beyonce小姐姐微信要记得备注【高清图】哦

来都来了,喜欢的话就请分享、点赞、在看三连再走吧~~~

HBuilderx连接微信开发者工具 系列文章目录 文章目录系列文章目录前言一、环境1.HBuilerx 工具2.微信开发者工具二、关联微信开发者工具1.HBuilderx新建项目2.关联微信开发者工具3.运行微信小程序出现异常解决方法3.最终效果总结 前言 使用HBuilderx工具关联微信开发者工具,进行小程序开发 提示:以下是本篇文章正文内容,下面案例可供参考 一、环境 1.HBuilerx 工具 HBuilderx 2.微信开发者工具 微信开发者工具 二、关联微信开发者工具 1.HBuilderx新建项目 2.关联微信开发者工具 阅读详情

相关推荐

粒子滤波在基于误差状态量的INS/GNSS组合导航中的使用技巧-On Particle Filter based Error-State INS/GNSS Intergrated Navigation

本文面向以15维惯导(INS)误差为状态量,3维位置误差为量测量的INS/GNSS组合导航系统,​在西工大严恭敏老师的开源工具箱中PF相关库函数基础上实现基于粒子滤波(PF)的惯导误差状态量的递推估计,设计了粒子重置环节并强调了其在本特定场景下的重要性。

I33D33I的博客 1744

python写个元旦快乐代码

好的,这是一个用 Python 输出 "元旦快乐" 的代码: print("元旦快乐") 你可以在 Python 的交互式环境或者新建一个 Python 文件,然后输入上面的代码,保存并运行即可。 你也可以使用 Python 的字符串格式化功能,输出当前的年份,来表达元旦的祝福: from datetime import datetime # 获取当前的年份 year = datetime.n...

weixin_35750483的博客 2031

Ansys EMC Plus:用于仿真屏蔽效果的一键式工作流程

在 EMA3D 选项卡下,单击 Shielding Effectiveness 按钮下方的箭头以访问设置并使用所需数量的分割数启动工作流程,这些分割数定义了网格大小。在此示例中,设置了 35 个分段,提供了良好的 FDTD 网格,同时保持了较短的仿真运行时间。接下来,选择默认的平面波源文件,然后选择所需的分析方向。您还可以查看和调整仿真树中的仿真参数,包括定义最低和最高频率值的解域、入射平面波的极化以及探针设置。您可以控制屏蔽效果图设置,并以线性比例显示结果。仿真完成后,软件将绘制与频率相关的屏蔽效果图。

jkh920184196的博客 873

新年代码合集来了,快来定制你的专属新年代码/爱心代码!

新年就要来点不一样的新年代码!快来制作你的新年代码吧!

quxuetrip的博客 3683

从设计到实战:手把手教你用SolidWorks完成一个简易离心泵叶轮的水力设计全流程

本文详细介绍了使用SolidWorks进行简易离心泵叶轮水力设计的全流程,涵盖参数计算、水力设计和三维建模等关键步骤。通过实际案例演示,帮助机械设计工程师和学生掌握从理论到实践的转化技巧,特别适合低比转速离心泵叶轮的设计需求。

weixin_30621711的博客 236

保姆级教程:用+86手机号成功注册Discord的三种亲测方法(附节点选择技巧)

本文提供了三种经过验证的方法,帮助用户使用+86手机号成功注册Discord,包括号码格式调整、网络环境优化和设备组合方案。同时详细解析了'手机号无效'报错的深层原因,并附上节点选择技巧,确保注册流程顺利。

weixin_42683394的博客 1924

元旦快乐python代码

【代码】元旦快乐python代码。

jeuuhebf的博客 1192

基于STM32的智能台灯PWM调光与人体感应融合设计

本文详细介绍了基于STM32单片机的智能台灯设计方案,重点讲解了PWM调光技术与人体感应模块的融合实现。通过STM32的高级定时器产生精准PWM信号控制LED亮度,结合红外传感器实现人来灯亮、人走灯灭的智能体验,同时集成光敏传感实现环境自适应调光,打造高效节能的智能照明解决方案。

threejs5artist的博客 827

HTML2023新年源代码(炫酷动态烟花)

html+css+js,2023新年炫酷动态烟花,没有编程基础也可现学现用,轻松拿捏,详细内容进来看看吧

m0_70456205的博客 4万+

【unity实战】Unity游戏开发:如何用ScriptableObject与序列化多态实现可复用的模块化效果系统?

本文介绍了两种实现卡牌游戏效果系统的模块化设计方案。方案一使用ScriptableObject创建独立的效果资产,通过组合实现不同效果,优点是数据可复用、可视化编辑,缺点是同类不同参数效果需创建大量SO文件。方案二利用SerializeReference特性直接嵌套效果实例,避免SO文件过多,但需要插件支持编辑器多态显示。两种方案都将效果与卡牌解耦,提高了代码复用性和扩展性,解决了硬编码带来的重复、维护困难和扩展不便等问题。开发者可根据项目需求选择合适方案,或结合两者优势构建更灵活的系统。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 437

【芯片设计- RTL 数字逻辑设计入门 番外篇6 -- 术语 Tile 介绍】

在系统级芯片(System on Chip, SoC)设计中,“tile” 是一个可以指代不同概念的术语,但通常它指的是芯片上的一个独立的功能单元或核心。一个 tile 可以包含一个或多个处理器核心、缓存、内存控制器、输入输出设备、外设接口或其他功能模块。在 SoC 上,多个 tile 可以被组合和连接起来,以形成一个完整的系统。

CodingCos的博客 3081

满屏显示元旦快乐代码

在 Python 中,可以使用 print 函数来满屏显示 "元旦快乐"。下面是一种方法: for i in range(100): print("元旦快乐") 这将使用循环来重复 100 次输出 "元旦快乐"。你也可以将这个字符串存储在变量中,然后使用循环输出多次。 greeting = "元旦快乐" for i in range(100): print(greeting) ...

weixin_35755188的博客 856

Pytorch入门实战(7):基于BERT实现文本隐喻二分类(Kaggle入门题目)

Bert入门实战,文本二分类问题

iioSnail的博客 4059

赶在元旦前夕!10分钟用Python批量定制化发送元旦祝福邮件!

现实生活中,如果只是发邮件给自己,像上一篇文章那样简陋的格式是可以接受的,但若要针对每个人进行邮件的定制化,群发给公司客户、内部员工、亲戚朋友,则需更加高级的邮件发送方式。 我们可以通过HTML制作一封精美的元旦祝福邮件,但是邮件的内容——比如姓名、祝福语等应该怎样动态渲染呢?答案是jinja2. jinja2 是一个Python 的模板引擎,使用jinja2,我们能够在邮件HTML中设定占位符,在Python发送邮件的时候,将指定文本渲染到该占位符中,实现动态渲染的目的。 举一个jinja2的简..

1468

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

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

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

2025新年倒计时:用Python实现跨年祝福脚本

不同操作系统下终端清屏命令可能不同(如Windows是cls,Linux是clear),需要做环境判断。定时精度也会受系统调度影响,对跨年瞬间的祝福显示要做容错处理。对于需要长期运行的脚本,平台提供了稳定的执行环境。虽然这个倒计时程序是一次性执行类型,但平台同样支持部署持续服务型项目,比如网页版的新年祝福页面,一键就能上线分享给朋友。使用time.sleep(1)控制每秒刷新一次显示,通过终端清屏或回退字符实现倒计时的动态更新效果。我测试时发现生成的项目带有完整的终端模拟器,可以实时看到倒计时效果变化。

MoonbeamOwl67的博客 909

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Python实用宝典精选教程(2020/12-2021/01)

高效办公!Python 批量生成PDF文档Python 分析邓紫棋微博粉丝分布实战教程Python 银行信用卡客户流失预测(kaggle)Python 炫技操作:五种 Python 转义表...

Python实用宝典网 623

深度学习工具包 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")

从Holiday Cheer到多维氛围营造:打造沉浸式节日体验的实践指南

氛围营造是一门融合了环境心理学、感官设计与社交行为学的综合技术,其核心原理在于通过多维度感官刺激与互动设计来影响人的情绪与行为。在数字化时代,这项技术不仅具有创造情感连接、提升群体归属感的价值,更广泛应用于社群运营、品牌体验、线下活动策划等场景。本文以节日场景为切入点,深入解构了氛围感的四个核心维度:视觉锚点、听觉嗅觉线索、仪式感行为与社交互动设计,并提供了从策划、执行到避坑的完整实操框架。通过系统性地运用视觉焦点法则、环境音效构建及互动仪式设计,组织者能将简单的节日问候升华为可感知、可参与的沉浸式体验,有

weixin_30527323的博客 520

python写出元旦特性代码

元旦是每年的1月1日,是中国传统节日之一。下面是一个简单的 Python 程序,可以在元旦当天输出问候语: import datetime# 获取当前日期 today = datetime.datetime.now() # 如果是元旦(1月1日) if today.month == 1 and today.day == 1: print("祝大家元旦快乐!") else: print("...

weixin_42588555的博客 519

元旦快乐!

注:懒得用数组做图片了,直接简单粗暴的用若干个cout打印出来。大家好,我是派蒙,今天祝大家:元旦快乐!看在我这么辛苦的份上,给个三连吧!码图不易,不喜勿喷!

yyj17705217006的博客 1094

python写出元旦特效代码

好的,那么这里是一个简单的元旦特效代码供你参考: # 导入需要的模块 import time import random # 定义打印元旦问候的函数 def print_greetings(): # 定义元旦问候语列表 greetings = [ "元旦快乐!", "新年快乐!", "祝大家元旦愉快!" ] # 随...

weixin_35756637的博客 905

弹窗攻势——使用python几行代码实现弹窗版新年祝福

使用python的tkinter实现弹窗新年祝福

艾醒的博客 6180

Python——2024元旦祝福语

Python 代码祝福语: "愿您的代码永远流畅,如同流淌的溪水。" "愿您在编程的道路上越走越远,收获满满的成功与喜悦。" "愿Python成为您实现梦想的翅膀,助你飞得更高更远。" "愿您在Python的世界里找到无限的可能,创造出令人惊叹的成果。" "愿您的代码如诗如画,优雅而有力,为世界带来美好。"

qq_70423325的博客 1556

超级棒的烟花Python代码!祝粉丝朋友们元旦快乐!

超级烟花映夜空,璀璨夺目耀苍穹。粉丝共聚庆佳节,元旦欢声动四方。环保烟花情更浓,浪漫永存心间藏。爱我的友皆如意,二零二五更辉煌。绚烂至极的焰火绽放于夜空,犹如梦幻织锦,为粉丝们献上元旦最璀璨的祝福!在这特别的时刻,我们以这样低碳环保的代码方式,不仅守护着地球的蔚蓝,更将那份不灭的浪漫镌刻于时光长河。致我亲爱的粉丝朋友们,愿你们的心灵在2025年里,如烟花般绚烂绽放,生活日益精彩,前程似锦,越来越好。

weixin_67304359的博客 620

元旦到了,手把手教你用 Python 制作一个炫酷烟花秀

大家好,我是小张, 今天是2021 的最后一天,到了这个时间点,部分小伙伴已经开始复盘这一年的得与失。比如今年增加了多少技能点,看了多少本书,写了多少篇文章或者年前的小目标实现进度大概多少等等;做一个象征性的年终总结来告别2021,迎接2022: 本篇文章,带大家用 Python 制作一个炫酷烟花秀,来迎接即将到来的元旦佳节。开始之前先看一下最终效果 环境介绍: 语言:Python; 库:Pygame; 原理介绍 在介绍代码之前,先介绍下 Pygame 绘制烟花的基本原理,烟花从发射到绽放一共分为三个阶

小张Python 3万+

利用python和前端三件套来一场线上烟花秀

目录 python烟花秀 效果展示: 全部代码如下: 前端三件套(JS、CSS、HEML)的烟花秀 HTML部分:定义网页内容 CSS部分:描述网页布局 JS部分:控制网页行为 End ✨✨✨✨✨✨✨ 元旦节就要来了,线下没有烟花看,线上不得整点烟花酷炫一下嘛!! 啥?过啥圣诞节?过啥洋节,咱们过元旦节好吧! ✨✨✨✨✨✨✨ python烟花秀 效果展示: 在这里,我们设计一个对象,表示烟花事件中的每个粒子。每个粒子都会有一些重要的属性,支配了它的外观和移动状况:大

weixin_45564943的博客 4378
上一篇: 机器学习100天学习计划 — 第2天 线性回归
下一篇: 机器学习必学10大算法
Wang_AI
博客等级 码龄12年 996粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值