用PY写一个PC版(不是网页版)微信软件聊天辅助工具, 程序要用到import win32gui import win32con d盘中的笑话合集.TXT是一个笑话的集合,文档中每个笑话的间隔是空行 要求每间隔20分钟向指定名字的好友按指定一个笑话, 如果收到“有病”“傻”“有毛病啊”停止发送 如果收到’看过了‘’没意思‘就再发下一个笑话

时间: 2023-05-11 15:04:20 浏览: 29
以下是一个可能的解决方案: ```python import time import random import win32gui import win32con # 微信窗口的类名和窗口名 WX_CLASS = "WeChatMainWndForPC" WX_TITLE = "微信" # 笑话文件的路径和发送间隔(秒) JOKE_FILE = "D:\\笑话合集.TXT" SEND_INTERVAL = 20 * 60 # 要发送笑话的好友和发送次数 FRIEND_NAME = "某某" SEND_COUNT = 3 # 笑话列表和当前发送的笑话索引 jokes = [] joke_index = 0 # 读取笑话文件 with open(JOKE_FILE, "r", encoding="utf-8") as f: joke = "" for line in f: if line.strip() == "": jokes.append(joke) joke = "" else: joke += line if joke != "": jokes.append(joke) # 获取微信窗口句柄 hwnd = win32gui.FindWindow(WX_CLASS, WX_TITLE) # 发送笑话的函数 def send_joke(): global joke_index if joke_index >= len(jokes): joke_index = 0 joke = jokes[joke_index] joke_index += 1 win32gui.SendMessage(hwnd, win32con.WM_SETTEXT, 0, FRIEND_NAME) time.sleep(1) win32gui.SendMessage(hwnd, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0) win32gui.SendMessage(hwnd, win32con.WM_KEYUP, win32con.VK_RETURN, 0) time.sleep(1) win32gui.SendMessage(hwnd, win32con.WM_SETTEXT, 0, joke) time.sleep(1) win32gui.SendMessage(hwnd, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0) win32gui.SendMessage(hwnd, win32con.WM_KEYUP, win32con.VK_RETURN, 0) print("发送笑话:", joke) # 循环发送笑话 send_count = 0 last_send_time = time.time() while send_count < SEND_COUNT: # 检查是否收到停止发送的消息 if win32gui.FindWindowEx(hwnd, 0, "Edit", None) != 0: last_msg = win32gui.SendMessage(hwnd, win32con.WM_GETTEXT, 1024, 0) if last_msg in ["有病", "傻", "有毛病啊"]: print("收到停止发送的消息:", last_msg) break elif last_msg in ["看过了", "没意思"]: send_joke() last_send_time = time.time() continue # 检查是否到达发送间隔 if time.time() - last_send_time >= SEND_INTERVAL: send_joke() send_count += 1 last_send_time = time.time() # 随机等待一段时间 time.sleep(random.randint(1, 10)) ``` 这个程序使用了 `win32gui` 和 `win32con` 模块来控制微信窗口,可以实现自动发送笑话的功能。具体实现过程如下: 1. 读取笑话文件,将每个笑话存储在一个列表中。 2. 获取微信窗口的句柄。 3. 定义一个发送笑话的函数,该函数会向指定的好友发送一个笑话,并更新当前发送的笑话索引。 4. 循环发送笑话,直到达到指定的发送次数或收到停止发送的消息。 5. 在每次循环中,先检查是否收到停止发送的消息,如果是则退出循环;否则检查是否到达发送间隔,如果是则调用发送笑话的函数并更新最后发送时间。 6. 在每次循环中,随机等待一段时间,以避免被微信识别为机器人。 注意,这个程序只是一个示例,实际使用时需要根据具体情况进行修改和调试。另外,自动发送消息可能会违反微信的使用协议,使用时需要自行承担风险。

相关推荐

以下是一个可能的解决方案: python import time import win32gui import win32con # 定义微信窗口的类名和标题 WECHAT_CLASS = "WeChatMainWndForPC" WECHAT_TITLE = "微信" # 定义笑话文件的路径和发送目标 JOKE_FILE = "D:\\笑话合集.TXT" TARGET_FRIEND = "某某" # 读取笑话文件 with open(JOKE_FILE, "r", encoding="utf-8") as f: jokes = f.read().split("\n\n") # 获取微信窗口句柄 hwnd = win32gui.FindWindow(WECHAT_CLASS, WECHAT_TITLE) # 发送笑话 for joke in jokes: # 如果收到指定的回复,停止发送 if "有病" in last_msg or "傻" in last_msg or "有毛病啊" in last_msg: break # 发送笑话 win32gui.SendMessage(hwnd, win32con.WM_SETTEXT, 0, TARGET_FRIEND) time.sleep(1) win32gui.SendMessage(hwnd, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0) time.sleep(1) win32gui.SendMessage(hwnd, win32con.WM_SETTEXT, 0, joke) time.sleep(1) win32gui.SendMessage(hwnd, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0) time.sleep(1200) # 间隔20分钟左右 # 获取最近一条消息 last_msg = win32gui.SendMessage(hwnd, win32con.WM_GETTEXT, 0, 0) last_msg = last_msg.strip().split("\n")[-1] # 如果收到指定的回复,继续发送下一个笑话 if "看过了" in last_msg or "没意思" in last_msg: continue 这个程序使用了 win32gui 和 win32con 模块来控制微信窗口,读取笑话文件,然后按照要求发送笑话。程序会每隔20分钟左右发送一个笑话,如果收到指定的回复,就停止发送,如果收到另外一些回复,就继续发送下一个笑话。
好的,以下是使用Python编写GUI和逻辑代码的示例,可以在不依赖于.py文件的情况下运行程序: python import tkinter as tk class Application(tk.Frame): def __init__(self, master=None): super().__init__(master) self.master = master self.pack() self.create_widgets() def create_widgets(self): self.hi_there = tk.Button(self) self.hi_there["text"] = "Hello World\n(click me)" self.hi_there["command"] = self.say_hi self.hi_there.pack(side="top") self.quit = tk.Button(self, text="QUIT", fg="red", command=self.master.destroy) self.quit.pack(side="bottom") def say_hi(self): print("hi there, everyone!") root = tk.Tk() app = Application(master=root) app.mainloop() 在此示例中,我们使用了Python标准库中的tkinter模块来创建一个GUI应用程序。我们定义了一个名为Application的类,该类继承自tk.Frame类,这意味着它是一个具有标准GUI元素的窗口。 在Application类的__init__方法中,我们定义了self.master,该变量保存了Tk对象的实例,这是GUI的主窗口。我们还调用了self.create_widgets()方法,该方法创建了两个按钮,一个用于打印消息,另一个用于退出应用程序。 在create_widgets方法中,我们首先创建了一个按钮self.hi_there,将其文本设置为“Hello World”并将其命令设置为self.say_hi方法。我们还创建了另一个按钮self.quit,该按钮用于退出应用程序。 最后,在say_hi方法中,我们简单地打印一条消息。 要运行此代码,只需将其保存为.py文件,然后在命令行中运行Python解释器并执行该文件即可。但是,您还可以在不依赖于.py文件的情况下运行此代码。要实现这一点,请将代码保存为名为“gui_logic.py”(或任何您想要的名称)的文件中,并在命令行中运行以下命令: sh python -c "import tkinter as tk; from gui_logic import Application; app = Application(master=tk.Tk()); app.mainloop()" 这将在不依赖于.py文件的情况下运行GUI应用程序并执行其逻辑代码。
好的,下面是一个简单的微信聊天页的实现,使用 Vue3 和 Tailwind CSS。 首先,我们需要创建一个名为 Chat.vue 的 Vue 单文件组件,然后在组件中引入依赖: html <template> 微信聊天页 </template> <script> import { ref } from 'vue'; export default { setup() { const messages = ref([]); const messageInput = ref(''); // 处理发送消息的函数 const sendMessage = () => { // 将消息添加到消息列表中 messages.value.push({ text: messageInput.value, isMe: true, }); // 清空输入框 messageInput.value = ''; }; return { messages, messageInput, sendMessage, }; }, }; </script> 在上面的代码中,我们创建了一个名为 Chat 的组件,并在其中定义了两个响应式变量 messages 和 messageInput,分别表示聊天消息列表和发送消息的输入框。我们还定义了一个 sendMessage 函数,用于处理发送消息的逻辑。 接下来,我们需要在模板中添加聊天消息列表和发送消息表单: html <template> 微信聊天页 {{ message.text }} {{ message.time }} <form @submit.prevent="sendMessage" class="flex items-center"> <input v-model="messageInput" type="text" class="flex-1 py-2 px-4 rounded-full bg-gray-100 mr-2" placeholder="输入消息..."> <button type="submit" class="bg-blue-500 text-white px-4 py-2 rounded-full">发送</button> </form> </template> 在上面的代码中,我们使用了 Tailwind CSS 的样式来美化聊天界面。聊天消息列表使用了 v-for 指令来遍历 messages 数组中的消息,并根据 isMe 属性来判断消息是自己发送的还是对方发送的。发送消息表单使用了 @submit.prevent 事件监听器来处理表单提交事件,并调用 sendMessage 函数来发送消息。 最后,我们需要在父组件中引入 Chat 组件并渲染它: html <template> <Chat /> </template> <script> import Chat from './Chat.vue'; export default { components: { Chat, }, }; </script> 至此,我们就实现了一个简单的微信聊天页。当然,这只是一个基础版本,你可以根据自己的需求进行扩展和优化。
### 回答1: 在 MicroPython 中,使用 "from 模块名 import 函数名" 语句可以导入另一个 .py 文件中的带参数的函数。示例代码如下: from another_module import function_with_args function_with_args(arg1, arg2) 其中,"another_module" 是另一个 .py 文件的文件名,"function_with_args" 是该文件中带参数的函数的名称。 在使用 from import 导入函数时,可以直接使用函数名调用,而不需要再加上模块名。 ### 回答2: 在MicroPython中,要导入另一个Python文件中带参数的函数,可以使用from..import语句。假设要导入的Python文件名为module.py,其中包含名为function的带参数的函数。 首先,确保module.py文件与当前工作环境处于相同的目录下。然后,在需要使用该函数的文件中,使用以下代码导入该函数: from module import function 这样就可以在当前文件中使用module.py文件中的function函数了。 如果function函数需要传递参数,可以通过调用该函数并传递参数来实现。例如,如果function函数需要一个名为param的参数,可以使用以下代码调用函数并传递参数: function(param) 这样就可以在当前文件中使用module.py文件中的带参数的函数了。需要注意的是,当导入的函数带有参数时,在调用函数时必须传递相应的参数,否则会出现错误。 总结起来,使用from..import语句可以在MicroPython中导入另一个Python文件中的带参数的函数。记得保持所需文件的路径正确,并在调用函数时传递参数。 ### 回答3: 在MicroPython中,使用from import语句来导入另一个Py文件中的带参数的函数是很简单的。 首先,确保将带参数函数所在的Py文件与当前文件处于相同的目录下。然后,在当前文件中使用from 文件名 import 函数名的语法来导入该函数。 需要注意的是,由于MicroPython相对于Python来说,是一个小型的嵌入式系统,因此不支持动态的模块导入和重载模块。所以,我们在导入函数时,需要确保文件中的函数在导入前已经定义好,并且在导入后不会再被修改。 具体操作如下: 1. 创建一个Py文件,命名为file1.py,其中包含一个带有参数的函数called_function: python def called_function(parameter): print("传入的参数是:" + str(parameter)) 2. 在另一个Py文件中,比如main.py文件中,我们想要导入file1.py中的called_function函数。 python from file1 import called_function # 调用导入的函数 called_function("Hello World!") 上述代码会导入file1.py中的called_function函数,并调用该函数,并将“Hello World!”作为参数传递给函数进行打印输出。 需要注意的是,如果文件所在的目录不在当前工作目录下,我们需要确保MicroPython可以访问到该文件。可以将文件放置在MicroPython支持的文件系统中,或者使用MicroPython所提供的文件操作API来访问外部存储器或网络等位置的文件。 这样,就实现了在MicroPython中使用from import导入另一个Py文件中的带参数函数的功能。
### 回答1: pil-1.1.7.win32-py2.7.exe是一个Python Imaging Library的安装程序。Python Imaging Library(简称PIL)是一个提供图像处理功能的开源库,它允许开发者在Python编程环境下进行图像处理、图像编辑、图像生成和图像显示等操作。 pil-1.1.7.win32-py2.7.exe是特定版本的PIL安装程序,在Windows 32位操作系统上以及使用Python 2.7版本的环境中使用。这个安装程序的目的是方便用户将PIL库安装到相应的开发环境中,以便后续能够利用PIL库中提供的丰富功能来处理图像。 安装pil-1.1.7.win32-py2.7.exe的过程相对简单,只需双击该文件即可开始安装过程。安装程序将会引导用户完成所有必要的安装步骤,包括选择安装目录、确认安装选项等。安装完成后,用户可以在Python的开发环境中使用import语句导入PIL库,并利用其提供的丰富的函数和方法进行图像处理任务。 总的来说,pil-1.1.7.win32-py2.7.exe是一个方便的PIL库的安装程序,适用于Windows 32位操作系统和Python 2.7版本的环境中。安装这个程序可以使开发者轻松地将PIL库集成到自己的Python项目中,并享受其提供的图像处理功能。 ### 回答2: pil-1.1.7.win32-py2.7.exe是一个Python图像处理库(Python Imaging Library)的安装文件。这个文件适用于Windows 32位操作系统和Python 2.7版本。Python Imaging Library是一个强大的图像处理库,它提供了许多图像处理和操作的功能,包括图像缩放、剪裁、旋转、滤镜效果、颜色转换等等。 用户可以通过运行这个.exe文件来安装pil-1.1.7.win32-py2.7库到本地的Python开发环境中。安装完成后,用户就可以在自己的Python脚本中使用PIL库提供的各种功能来处理图像。这个库对于进行图像编辑、处理和分析等任务非常有用。 在使用PIL库之前,用户需要先确保已经安装了Python 2.7版本,并且操作系统是Windows 32位。然后,用户可以下载pil-1.1.7.win32-py2.7.exe文件,并双击运行该文件进行安装。安装过程中会有一些设置选项和安装路径可以选择,用户可以根据自己的需要进行配置。 一旦PIL库安装完成,用户就可以在Python开发环境中导入该库并开始使用它的各种功能了。用户可以使用PIL库来读取和保存图像文件,对图像进行几何变换和颜色处理,以及应用各种滤镜和效果等。这个库还提供了一些更高级的功能,如图像分割、特征提取和图像识别等。 总之,pil-1.1.7.win32-py2.7.exe是一个安装文件,用于将Python Imaging Library(PIL)库安装到Windows 32位操作系统和Python 2.7版本的开发环境中,以便用户可以使用该库进行各种图像处理和操作。 ### 回答3: pil-1.1.7.win32-py2.7.exe是一种用于安装Python Imaging Library(PIL)的可执行文件。PIL是一个强大的Python图像处理库,它提供了丰富的图像处理功能,可以对图像进行加载、编辑、保存和显示等操作。 PIL-1.1.7是PIL库的一个特定版本,而win32表示这个可执行文件适用于Windows操作系统的32位版本。py2.7表示该版本适用于Python 2.7版本。 要使用pil-1.1.7.win32-py2.7.exe安装PIL库,首先需要下载该可执行文件。然后,双击运行它,它会自动安装PIL库到你的Python环境中。你也可以选择其他安装目录,只需在安装过程中进行相应设置即可。 安装完成后,你就可以在Python程序中使用PIL库了。通过引入PIL库,你可以使用它提供的各种函数和方法来处理图像,比如加载图像文件、调整图像大小、旋转图像、裁剪图像、应用滤镜等等。你还可以将处理后的图像保存成文件,或者在程序中显示出来。 总之,pil-1.1.7.win32-py2.7.exe是安装Python Imaging Library(PIL)的可执行文件,它可以帮助你在Python 2.7版本的Windows操作系统上使用PIL库进行图像处理。
### 回答1: 这是一个需要使用第三方库才能实现的任务,因为微信和短信的 API 是不公开的。但是,第三方库可以模拟微信和短信的行为,从而实现发送消息的功能。 其中一个第三方库是 itchat,可以用来发送微信消息。它的安装和使用方法如下: 1. 安装 itchat:打开命令行或终端,输入 pip install itchat 并回车。 2. 创建一个 python 文件,如 send_wechat.py。 3. 在 send_wechat.py 中输入以下代码: python import itchat itchat.login() itchat.send('Hello, filehelper', toUserName='filehelper') 4. 运行 send_wechat.py:打开命令行或终端,输入 python send_wechat.py 并回车。 5. 在微信中查看消息:登录微信,在聊天列表中找到「文件传输助手」,查看是否收到了「Hello, filehelper」这条消息。 如果要发送短信,则需要使用第三方库 twilio。它的安装和使用方法如下: 1. 安装 twilio:打开命令行或终端,输入 pip install twilio 并回车。 2. 创建一个 python 文件,如 send_sms.py。 3. 在 send_sms.py 中输入以下代码: python from twilio.rest import Client account_sid = 'YOUR_ACCOUNT_SID' auth_token = 'YOUR_AUTH_TOKEN' client = Client(account_sid, auth_token) message = client.messages.create ### 回答2: 使用Python编写一个自动发送微信和短信的脚本相对复杂,因为要涉及到与微信和短信平台的交互,而不同的平台可能有不同的API或SDK要求。我将以发送微信为例,简要解释如何使用Python发送微信消息。 1. 安装必要的库:首先,确保已经安装了Python,然后安装相关的库。对于发送微信消息,可以使用itchat库。使用pip命令安装itchat库:pip install itchat。 2. 导入库并进行登录:在Python脚本中导入itchat库,并使用itchat.login()方法进行登录。可以使用itchat.auto_login()方法,该方法可以扫描二维码进行登录,或者使用itchat.login()方法传入用户名和密码进行登录。 3. 编写发送消息的代码:使用itchat库提供的send()方法,可以通过指定好友的备注名、微信号或群聊的名称来发送消息。例如,使用itchat.send("Hello, World!", toUserName='备注名或微信号')即可发送一条消息。 4. 运行脚本并自动发送消息:保存Python脚本,并运行。脚本运行后会自动登录微信,并发送指定的消息。 需要注意的是,微信官方并不支持第三方自动发送消息的方式,因此这种方式并不是官方推荐的方法。使用该脚本进行自动发送消息时需谨慎,且要遵守相关法律法规和平台规定,以免触犯法律或违反相关规定。 同样,在发送短信方面,涉及到与短信平台的交互,可能需要使用第三方库或者API进行实现。不同短信平台有不同的要求和接口,具体的实现方式需要根据所使用的短信平台来确定。 ### 回答3: 使用Python编写自动发送微信和短信脚本,可以通过调用相关的第三方库或者API实现。 1. 自动发送微信脚本: 使用Python的itchat库可以实现自动发送微信消息。可以按照以下步骤使用: - 首先,安装itchat库(pip install itchat); - 导入itchat库; - 使用itchat.login()方法登录微信账号; - 使用itchat.send()方法发送消息或者使用itchat.send_file()发送文件。 2. 自动发送短信脚本: 使用Python的第三方库Twilio可以实现自动发送短信。可以按照以下步骤使用: - 首先,安装twilio库(pip install twilio); - 导入twilio库; - 在Twilio官网注册账号并获取SID和token,用于身份验证; - 使用twilio.rest.Client()方法初始化客户端,并将SID和token作为参数传入; - 使用client.messages.create()方法发送短信。 使用以上的脚本,可以实现自动化地发送微信和短信。可以根据实际需要,编写相应的Python脚本,通过调用相应的函数或方法,来实现发送微信或短信的功能。在使用脚本前,需要安装相应的库,并将微信和短信的相关认证信息配置正确。 总结: 以上是使用Python编写自动发送微信和短信脚本的方法。根据实际需求,选择合适的第三方库并按照相应的步骤进行使用和配置,以实现自动发送微信和短信的功能。

最新推荐

Python实现调用另一个路径下py文件中的函数方法总结

主要介绍了Python实现调用另一个路径下py文件中的函数方法,结合实例形式总结分析了Python针对不同文件夹中py文件调用操作的处理技巧与相关注意事项,需要的朋友可以参考下

解决Jupyter notebook中.py与.ipynb文件的import问题

主要介绍了解决Jupyter notebook中.py与.ipynb文件的import问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

32位单片机 PY32F003 中文数据手册

PY32F003 系列微控制器采用高性能的 32 位 ARM Cortex-M0+内核,宽电压工作范围的 MCU。嵌入高达 32Kbytes flash 和 4Kbytes SRAM 存储器,最高工作频率 32MHz。包含多种不同封装类型多款产品。芯片集成多路 I2C、...

Python中py文件引用另一个py文件变量的方法

下面小编就为大家分享一篇Python中py文件引用另一个py文件变量的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

一个简单的python程序实例(通讯录)

/usr/bin/python#Filename:friendbook.pyimport cPickle as pimport sysimport timeimport os ab={‘Xdex’:’cneds@fnedf.com’, ‘Laexly’:’fev@fe.com’, ‘Fukc’:’fexok@ver.com’, ‘Stifu’:’stif@qq....

代码随想录最新第三版-最强八股文

这份PDF就是最强⼋股⽂! 1. C++ C++基础、C++ STL、C++泛型编程、C++11新特性、《Effective STL》 2. Java Java基础、Java内存模型、Java面向对象、Java集合体系、接口、Lambda表达式、类加载机制、内部类、代理类、Java并发、JVM、Java后端编译、Spring 3. Go defer底层原理、goroutine、select实现机制 4. 算法学习 数组、链表、回溯算法、贪心算法、动态规划、二叉树、排序算法、数据结构 5. 计算机基础 操作系统、数据库、计算机网络、设计模式、Linux、计算机系统 6. 前端学习 浏览器、JavaScript、CSS、HTML、React、VUE 7. 面经分享 字节、美团Java面、百度、京东、暑期实习...... 8. 编程常识 9. 问答精华 10.总结与经验分享 ......

无监督视觉表示学习中的时态知识一致性算法

无监督视觉表示学习中的时态知识一致性维信丰酒店1* 元江王2*†马丽华2叶远2张驰2北京邮电大学1旷视科技2网址:fengweixin@bupt.edu.cn,wangyuanjiang@megvii.com{malihua,yuanye,zhangchi} @ megvii.com摘要实例判别范式在无监督学习中已成为它通常采用教师-学生框架,教师提供嵌入式知识作为对学生的监督信号。学生学习有意义的表征,通过加强立场的空间一致性与教师的意见。然而,在不同的训练阶段,教师的输出可以在相同的实例中显著变化,引入意外的噪声,并导致由不一致的目标引起的灾难性的本文首先将实例时态一致性问题融入到现有的实例判别范式中 , 提 出 了 一 种 新 的 时 态 知 识 一 致 性 算 法 TKC(Temporal Knowledge Consis- tency)。具体来说,我们的TKC动态地集成的知识的时间教师和自适应地选择有用的信息,根据其重要性学习实例的时间一致性。

yolov5 test.py

您可以使用以下代码作为`test.py`文件中的基本模板来测试 YOLOv5 模型: ```python import torch from PIL import Image # 加载模型 model = torch.hub.load('ultralytics/yolov5', 'yolov5s') # 选择设备 (CPU 或 GPU) device = torch.device('cuda') if torch.cuda.is_available() else torch.device('cpu') # 将模型移动到所选设备上 model.to(device) # 读取测试图像 i

数据结构1800试题.pdf

你还在苦苦寻找数据结构的题目吗?这里刚刚上传了一份数据结构共1800道试题,轻松解决期末挂科的难题。不信?你下载看看,这里是纯题目,你下载了再来私信我答案。按数据结构教材分章节,每一章节都有选择题、或有判断题、填空题、算法设计题及应用题,题型丰富多样,共五种类型题目。本学期已过去一半,相信你数据结构叶已经学得差不多了,是时候拿题来练练手了,如果你考研,更需要这份1800道题来巩固自己的基础及攻克重点难点。现在下载,不早不晚,越往后拖,越到后面,你身边的人就越卷,甚至卷得达到你无法想象的程度。我也是曾经遇到过这样的人,学习,练题,就要趁现在,不然到时你都不知道要刷数据结构题好还是高数、工数、大英,或是算法题?学完理论要及时巩固知识内容才是王道!记住!!!下载了来要答案(v:zywcv1220)。

基于对比检测的高效视觉预训练

10086⇥⇥⇥⇥基于对比检测的高效视觉预训练Ol i vierJ. He´naf f SkandaKoppula Jean-BaptisteAlayracAaronvandenOord OriolVin yals JoaoCarreiraDeepMind,英国摘要自我监督预训练已被证明可以为迁移学习提供然而,这些性能增益是以大的计算成本来实现的,其中最先进的方法需要比监督预训练多一个数量级的计算。我们通过引入一种新的自监督目标,对比检测,任务表示与识别对象级功能跨增强来解决这个计算瓶颈。该目标可提取每幅图像的丰富学习信号,从而在各种下游任务上实现最先进的传输精度,同时需要高达10少训练特别是,我们最强的ImageNet预训练模型的性能与SEER相当,SEER是迄今为止最大的自监督系统之一,它使用了1000多个预训练数据。最后,我们的目标无缝地处理更复杂图像的预训练,例如COCO中的图像,缩小了从COCO到PASCAL的监督迁移学习的差距1. 介绍自从Al