使用数学从reddit中选择墙纸

redrum的Python项目详细描述


Redrum-Reddit墙纸下载程序和Ranker图片::screenshot.png

redrum是一个reddit墙纸下载程序,它对墙纸进行评分,并根据分辨率、纵横比和浏览次数选择最佳。它会记住以前选择的墙纸,这样您就不会看到同一张图像两次。

安装systemd单元,每两小时运行一次脚本。



installation
----


1。通过管道安装代码::bash

pip3安装redrum

2。使用首选选项编辑` ~/.config/redrum.ini`。

3。安装自动更换壁纸的服务(可选)

…代码::bash

redrum


注意:如果使用python3 virtualenv,请将“redrum.service”中的“execstart”更改为“`/path/to/venv/bin/redrum`

usage
----

您应该使用屏幕分辨率和首选子reddits更新此文件,然后再次运行redrum。

…代码::bash

>;>;redrum
/home/evan/.config/redrum.ini中未找到配置。创建您的首选选项的更新配置,然后再运行一次。2和1页的索引缓存0。…
在5971幅图像中,选择了得分为5.21729920261845e-05的http://i.imgur.com/3uwbcyg.jpg(EarthPorn)
选择此图像的概率为0.009851421028579594
应用墙纸


评分算法
----


图像按以下三个步骤评分:

1。为缓存中的每个图像计算三个输入分数。数学:

像素得分=[图像总像素]/[屏幕总像素]

比率得分=[图像x-y比率]/[屏幕x-y比率]

[屏幕x-y比率]/[图像x-y比率]
(以小于1者为准)

视图得分=[此图像的视图]/[所有图像的最高视图]

2。每一个输入分数都是通过一个乙状结肠功能(在本例中是“logistic功能”)来计算的。与线性方法相比,这有助于在好图像和坏图像之间提供更强的区分。逻辑函数由其“中点”和中点处的斜率“k”定义。

…图片::https://wikimedia.org/api/rest_v1/media/math/render/svg/2770ecdecd1a6d2375d17f73013905cea5fb2668
…图::https://upload.wikimedia.org/wikipedia/commons/8/88/logistic curve.svg
:宽度:400px


logistic函数中的``midpoint=0`,``k=1`


数学:

ratio-logistic评分=(1+pow(math.e,-ratio-k k*(1-ratio-ratio-off))/(1+pow(math.e,-ratio-k*(ratio-score-ratio-offoffoff))(1+pow(math.e,-ratio-k*(1-ratio-offoff))/(1+pow(math.e,-views-k*(math.e,-ratio-k*(1-ratio-ratio-offoffoff))/(1+pow(math.e,-views-k*(math.e,-pow(math.e,-ratio-ratio-k*(1-ratio-ratio-POW(数学E,-比率K*(1-比率关))/(1+POW(数学E,-像素K*(像素分数-像素截止))

``像素分数``,``比率分数`,视图分数``继承自己的“中点”和“k”,可以在` ~/.config/redrum.ini`

_物流功能:https://en.wikipedia.org/wiki/logistic_function

3.然后将三个logistic得分相乘,计算图像的“最终得分”。此分数用于对缓存中的所有图像进行随机加权选择。如果图像的“最终得分”是另一图像得分的两倍,则在随机选择过程中,选择该图像的可能性是选择该图像的两倍。

`` redrum-tune允许您快速调整对数函数的“中点”和“k”,并查看其对“最终得分”的影响。要安装额外的依赖项(matplotlib,numpy),需要运行“pip install redrum[tune]”。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java jgrapht SimpleDirectedWeightedGraph规范化权重   java安卓使用CFB   java如何从javaclass警告浏览器?可能吗?   javagson结构难点   java使用jbossclient的最佳方式是什么。Wildfly 10应用程序中的jar?   JAVA:socket重写以使用CipherInputStream和CipherOutputStream   java Android UI测试长时间点击并拖动   java如何在Android中重置AtomicInteger唯一Id?   多线程客户端/服务器应用程序上的java客户端断开连接   GAE Memcache中的java损坏值   java如何使用变量作为资源的路径?   爪哇?(三向)操作员