﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-杰</title><link>http://www.cppblog.com/guijie/</link><description>杰哥好,哈哈!</description><language>zh-cn</language><lastBuildDate>Mon, 13 Apr 2026 19:04:57 GMT</lastBuildDate><pubDate>Mon, 13 Apr 2026 19:04:57 GMT</pubDate><ttl>60</ttl><item><title>[zz]EndNote在word中进行文献引用的插入时，没有出现数字[1]而是出现(Gruning 2018)的解决方案</title><link>http://www.cppblog.com/guijie/archive/2021/03/27/217640.html</link><dc:creator>杰哥</dc:creator><author>杰哥</author><pubDate>Sat, 27 Mar 2021 05:26:00 GMT</pubDate><guid>http://www.cppblog.com/guijie/archive/2021/03/27/217640.html</guid><wfw:comment>http://www.cppblog.com/guijie/comments/217640.html</wfw:comment><comments>http://www.cppblog.com/guijie/archive/2021/03/27/217640.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/guijie/comments/commentRss/217640.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/guijie/services/trackbacks/217640.html</trackback:ping><description><![CDATA[<div>在word上栏中的Endnote选项卡，&#8220;Instant formatting is off&#8221;改为&#8220;Instant formatting is on&#8221;是可以的<br />Reference<br />https://blog.csdn.net/qq_32120957/article/details/83547621</div><img src ="http://www.cppblog.com/guijie/aggbug/217640.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/guijie/" target="_blank">杰哥</a> 2021-03-27 13:26 <a href="http://www.cppblog.com/guijie/archive/2021/03/27/217640.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[zz] 【Word】超链接出现{ HYPERLINK “http://xx/” }的解决办法</title><link>http://www.cppblog.com/guijie/archive/2021/03/23/217635.html</link><dc:creator>杰哥</dc:creator><author>杰哥</author><pubDate>Tue, 23 Mar 2021 07:47:00 GMT</pubDate><guid>http://www.cppblog.com/guijie/archive/2021/03/23/217635.html</guid><wfw:comment>http://www.cppblog.com/guijie/comments/217635.html</wfw:comment><comments>http://www.cppblog.com/guijie/archive/2021/03/23/217635.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/guijie/comments/commentRss/217635.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/guijie/services/trackbacks/217635.html</trackback:ping><description><![CDATA[<div>在Word中黏贴超链接和打开原来有超链接的文档，原来的超链接都显示成了&#8220;{ HYPERLINK http://网站地址 }&#8221;，很是奇怪！</div><div>解决办法：</div><div>方法一、选中没有生成超链接的字符，依次打开菜单栏的&#8220;工具&#8221;--&gt;选项--&gt;将&#8220;视图&#8221;中的&#8220;域代码&#8221;取消勾选，然后确定即可。</div><div>方法二、选中没有生成超链接的字符，直接按&#8220;Alt+F9&#8221;就可以生成超链接了。</div><div></div><div>Reference:</div><div>http://witmax.cn/word-hyperlink-show-code.html</div><img src ="http://www.cppblog.com/guijie/aggbug/217635.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/guijie/" target="_blank">杰哥</a> 2021-03-23 15:47 <a href="http://www.cppblog.com/guijie/archive/2021/03/23/217635.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Win10自带的清理工具怎么用</title><link>http://www.cppblog.com/guijie/archive/2021/02/10/217605.html</link><dc:creator>杰哥</dc:creator><author>杰哥</author><pubDate>Wed, 10 Feb 2021 09:26:00 GMT</pubDate><guid>http://www.cppblog.com/guijie/archive/2021/02/10/217605.html</guid><wfw:comment>http://www.cppblog.com/guijie/comments/217605.html</wfw:comment><comments>http://www.cppblog.com/guijie/archive/2021/02/10/217605.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/guijie/comments/commentRss/217605.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/guijie/services/trackbacks/217605.html</trackback:ping><description><![CDATA[<div>https://guanjia.qq.com/web_clinic/s7/2076.html</div><img src ="http://www.cppblog.com/guijie/aggbug/217605.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/guijie/" target="_blank">杰哥</a> 2021-02-10 17:26 <a href="http://www.cppblog.com/guijie/archive/2021/02/10/217605.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[zz] Siamese network 孪生神经网络--一个简单神奇的结构</title><link>http://www.cppblog.com/guijie/archive/2021/01/14/217571.html</link><dc:creator>杰哥</dc:creator><author>杰哥</author><pubDate>Thu, 14 Jan 2021 11:17:00 GMT</pubDate><guid>http://www.cppblog.com/guijie/archive/2021/01/14/217571.html</guid><wfw:comment>http://www.cppblog.com/guijie/comments/217571.html</wfw:comment><comments>http://www.cppblog.com/guijie/archive/2021/01/14/217571.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/guijie/comments/commentRss/217571.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/guijie/services/trackbacks/217571.html</trackback:ping><description><![CDATA[<div>https://www.jianshu.com/p/92d7f6eaacf5</div><img src ="http://www.cppblog.com/guijie/aggbug/217571.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/guijie/" target="_blank">杰哥</a> 2021-01-14 19:17 <a href="http://www.cppblog.com/guijie/archive/2021/01/14/217571.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[zz] 电脑网页打不开怎么办</title><link>http://www.cppblog.com/guijie/archive/2020/10/30/217496.html</link><dc:creator>杰哥</dc:creator><author>杰哥</author><pubDate>Fri, 30 Oct 2020 14:47:00 GMT</pubDate><guid>http://www.cppblog.com/guijie/archive/2020/10/30/217496.html</guid><wfw:comment>http://www.cppblog.com/guijie/comments/217496.html</wfw:comment><comments>http://www.cppblog.com/guijie/archive/2020/10/30/217496.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/guijie/comments/commentRss/217496.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/guijie/services/trackbacks/217496.html</trackback:ping><description><![CDATA[<div>https://jingyan.baidu.com/article/75ab0bcb8001e5d6864db232.html</div><img src ="http://www.cppblog.com/guijie/aggbug/217496.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/guijie/" target="_blank">杰哥</a> 2020-10-30 22:47 <a href="http://www.cppblog.com/guijie/archive/2020/10/30/217496.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[zz]python 二维列表按列取元素</title><link>http://www.cppblog.com/guijie/archive/2020/09/11/217442.html</link><dc:creator>杰哥</dc:creator><author>杰哥</author><pubDate>Thu, 10 Sep 2020 23:21:00 GMT</pubDate><guid>http://www.cppblog.com/guijie/archive/2020/09/11/217442.html</guid><wfw:comment>http://www.cppblog.com/guijie/comments/217442.html</wfw:comment><comments>http://www.cppblog.com/guijie/archive/2020/09/11/217442.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/guijie/comments/commentRss/217442.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/guijie/services/trackbacks/217442.html</trackback:ping><description><![CDATA[<p style="box-sizing: border-box; outline: 0px; margin: 0px 0px 16px; padding: 0px; font-family: &quot;Microsoft YaHei&quot;, &quot;SF Pro Display&quot;, Roboto, Noto, Arial, &quot;PingFang SC&quot;, sans-serif; font-size: 18px; color: #4d4d4d; line-height: 26px; overflow-wrap: break-word; font-variant-ligatures: common-ligatures; background-color: #ffffff;">直接切片是不行的：</p><pre name="code" style="box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 24px; padding: 8px 16px 6px 56px; position: relative; font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; overflow: auto hidden; line-height: 22px; overflow-wrap: break-word; background-color: #f6f8fa; border: none; font-variant-ligatures: common-ligatures;"><code lua=""  has-numbering"="" style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 8px; font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; display: block; overflow-x: auto; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; line-height: 22px; border-radius: 4px; overflow-wrap: break-word; min-width: 94%; text-size-adjust: none; position: unset; color: #4f4f4f !important;">&gt;&gt;&gt; a=<span style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; font-family: &quot;Microsoft YaHei&quot;, &quot;SF Pro Display&quot;, Roboto, Noto, Arial, &quot;PingFang SC&quot;, sans-serif; font-size: inherit; overflow-wrap: break-word; color: #009900 !important;">[[1,2,3], [4,5,6]]</span> &gt;&gt;&gt; a[:, <span style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; font-family: &quot;Microsoft YaHei&quot;, &quot;SF Pro Display&quot;, Roboto, Noto, Arial, &quot;PingFang SC&quot;, sans-serif; font-size: inherit; overflow-wrap: break-word; color: #006666 !important;">0</span>]                   # 尝试用数组的方法读取一列失败 TypeError: list indices must be integers <span style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; font-family: &quot;Microsoft YaHei&quot;, &quot;SF Pro Display&quot;, Roboto, Noto, Arial, &quot;PingFang SC&quot;, sans-serif; font-size: inherit; overflow-wrap: break-word; color: #000088 !important;">or</span> slices, <span style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; font-family: &quot;Microsoft YaHei&quot;, &quot;SF Pro Display&quot;, Roboto, Noto, Arial, &quot;PingFang SC&quot;, sans-serif; font-size: inherit; overflow-wrap: break-word; color: #000088 !important;">not</span> tuple</code><ul style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 8px 0px; list-style: none; font-family: &quot;Microsoft YaHei&quot;, &quot;SF Pro Display&quot;, Roboto, Noto, Arial, &quot;PingFang SC&quot;, sans-serif; font-size: 18px; overflow-wrap: break-word; position: absolute; width: 48px; background-color: #eef0f4; top: 0px; left: 0px;"><li style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px 8px; list-style: none; font-size: inherit; overflow-wrap: break-word; color: #999999;">1</li><li style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px 8px; list-style: none; font-size: inherit; overflow-wrap: break-word; color: #999999;">2</li><li style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px 8px; list-style: none; font-size: inherit; overflow-wrap: break-word; color: #999999;">3</li></ul></pre><p style="box-sizing: border-box; outline: 0px; margin: 0px 0px 16px; padding: 0px; font-family: &quot;Microsoft YaHei&quot;, &quot;SF Pro Display&quot;, Roboto, Noto, Arial, &quot;PingFang SC&quot;, sans-serif; font-size: 18px; color: #4d4d4d; line-height: 26px; overflow-wrap: break-word; font-variant-ligatures: common-ligatures; background-color: #ffffff;">我们可以直接构造：</p><pre name="code" style="box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 24px; padding: 8px 16px 6px 56px; position: relative; font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; overflow: auto hidden; line-height: 22px; overflow-wrap: break-word; background-color: #f6f8fa; border: none; font-variant-ligatures: common-ligatures;"><code python=""  has-numbering"="" style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 8px; font-family: &quot;Source Code Pro&quot;, &quot;DejaVu Sans Mono&quot;, &quot;Ubuntu Mono&quot;, &quot;Anonymous Pro&quot;, &quot;Droid Sans Mono&quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, sans-serif; display: block; overflow-x: auto; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; line-height: 22px; border-radius: 4px; overflow-wrap: break-word; min-width: 94%; text-size-adjust: none; position: unset; color: #4f4f4f !important;"><span style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; font-family: &quot;Microsoft YaHei&quot;, &quot;SF Pro Display&quot;, Roboto, Noto, Arial, &quot;PingFang SC&quot;, sans-serif; font-size: inherit; overflow-wrap: break-word; color: #006666 !important;">&gt;&gt;&gt; </span>b = [i[<span style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; font-family: &quot;Microsoft YaHei&quot;, &quot;SF Pro Display&quot;, Roboto, Noto, Arial, &quot;PingFang SC&quot;, sans-serif; font-size: inherit; overflow-wrap: break-word; color: #006666 !important;">0</span>] <span style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; font-family: &quot;Microsoft YaHei&quot;, &quot;SF Pro Display&quot;, Roboto, Noto, Arial, &quot;PingFang SC&quot;, sans-serif; font-size: inherit; overflow-wrap: break-word; color: #000088 !important;">for</span> i <span style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; font-family: &quot;Microsoft YaHei&quot;, &quot;SF Pro Display&quot;, Roboto, Noto, Arial, &quot;PingFang SC&quot;, sans-serif; font-size: inherit; overflow-wrap: break-word; color: #000088 !important;">in</span> a]     <span style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; font-family: &quot;Microsoft YaHei&quot;, &quot;SF Pro Display&quot;, Roboto, Noto, Arial, &quot;PingFang SC&quot;, sans-serif; font-style: italic; font-size: inherit; overflow-wrap: break-word; color: #880000 !important;"># 从a中的每一行取第一个元素。</span> <span style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; font-family: &quot;Microsoft YaHei&quot;, &quot;SF Pro Display&quot;, Roboto, Noto, Arial, &quot;PingFang SC&quot;, sans-serif; font-size: inherit; overflow-wrap: break-word; color: #006666 !important;">&gt;&gt;&gt; </span>print(b) [<span style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; font-family: &quot;Microsoft YaHei&quot;, &quot;SF Pro Display&quot;, Roboto, Noto, Arial, &quot;PingFang SC&quot;, sans-serif; font-size: inherit; overflow-wrap: break-word; color: #006666 !important;">1</span>, <span style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; font-family: &quot;Microsoft YaHei&quot;, &quot;SF Pro Display&quot;, Roboto, Noto, Arial, &quot;PingFang SC&quot;, sans-serif; font-size: inherit; overflow-wrap: break-word; color: #006666 !important;">4</span>]<br /><br />Reference:<br /><br /><div>https://blog.csdn.net/xiaotao_1/article/details/80729458</div></code></pre><img src ="http://www.cppblog.com/guijie/aggbug/217442.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/guijie/" target="_blank">杰哥</a> 2020-09-11 07:21 <a href="http://www.cppblog.com/guijie/archive/2020/09/11/217442.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[zz]Python中下划线的5种含义</title><link>http://www.cppblog.com/guijie/archive/2019/02/02/216230.html</link><dc:creator>杰哥</dc:creator><author>杰哥</author><pubDate>Fri, 01 Feb 2019 17:51:00 GMT</pubDate><guid>http://www.cppblog.com/guijie/archive/2019/02/02/216230.html</guid><wfw:comment>http://www.cppblog.com/guijie/comments/216230.html</wfw:comment><comments>http://www.cppblog.com/guijie/archive/2019/02/02/216230.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/guijie/comments/commentRss/216230.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/guijie/services/trackbacks/216230.html</trackback:ping><description><![CDATA[<div><div style="overflow: hidden; width: 690px; margin: 0px auto; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Source Han Sans SC&quot;, &quot;Noto Sans CJK SC&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif; font-size: medium; background-color: #ffffff;"><div ztext=""  post-richtext"="" style="word-break: break-word; line-height: 1.6; margin-top: 20px;"><p style="margin: 0px 0px 1.4em;">分享一篇文章：<a href="http://link.zhihu.com/?target=https%3A//dbader.org/blog/meaning-of-underscores-in-python" wrap=""  external"="" target="_blank" rel="nofollow noreferrer" data-za-detail-view-id="1043" style="text-decoration-line: none; cursor: pointer; border-bottom: 1px solid #808080;">The Meaning of Underscores in Python</a>。</p><p style="margin: 1.4em 0px;">本文介绍了Python中单下划线和双下划线（"dunder"）的各种含义和命名约定，名称修饰（name mangling）的工作原理，以及它如何影响你自己的Python类。</p><p style="margin: 1.4em 0px;">单下划线和双下划线在Python变量和方法名称中都各有其含义。有一些含义仅仅是依照约定，被视作是对程序员的提示 - 而有一些含义是由Python解释器严格执行的。</p><p style="margin: 1.4em 0px;">如果你想知道&#8220;Python变量和方法名称中单下划线和双下划线的含义是什么？&#8221;，我会尽我所能在这里为你解答。</p><p style="margin: 1.4em 0px;">在本文中，我将讨论以下五种下划线模式和命名约定，以及它们如何影响Python程序的行为：</p><ul style="padding: 0px; margin: 1.4em 0px; display: table;"><li style="list-style: none; display: table-row;">单前导下划线：_var</li><li style="list-style: none; display: table-row;">单末尾下划线：var_</li><li style="list-style: none; display: table-row;">双前导下划线：__var</li><li style="list-style: none; display: table-row;">双前导和末尾下划线：__var__</li><li style="list-style: none; display: table-row;">单下划线：_</li></ul><p style="margin: 1.4em 0px;">在文章结尾处，你可以找到一个简短的&#8220;速查表&#8221;，总结了五种不同的下划线命名约定及其含义，以及一个简短的视频教程，可让你亲身体验它们的行为。</p><p style="margin: 1.4em 0px;">让我们马上开始！</p><h2>1. 单前导下划线 _var</h2><p style="margin: 1.4em 0px;">当涉及到变量和方法名称时，单个下划线前缀有一个约定俗成的含义。 它是对程序员的一个提示 - 意味着Python社区一致认为它应该是什么意思，但程序的行为不受影响。</p><p style="margin: 1.4em 0px;">下划线前缀的含义是告知其他程序员：以单个下划线开头的变量或方法仅供内部使用。 该约定在PEP 8中有定义。</p><p style="margin: 1.4em 0px;">这不是Python强制规定的。 Python不像Java那样在&#8220;私有&#8221;和&#8220;公共&#8221;变量之间有很强的区别。 这就像有人提出了一个小小的下划线警告标志，说：</p><blockquote style="margin: 1.4em 0px; padding-left: 1em; color: #646464; border-left-width: 3px; border-left-color: #d3d3d3;">&#8220;嘿，这不是真的要成为类的公共接口的一部分。不去管它就好。&#8220;</blockquote><p style="margin: 1.4em 0px;">看看下面的例子：</p><div style="margin: 1em 0px;"><pre style="margin-top: 0px; margin-bottom: 0px; padding: calc(0.888889em); font-size: 0.9em; word-break: initial; overflow-wrap: initial; overflow: auto; background: #f6f6f6; border-radius: 4px;"><code style="margin: 0px; padding: 0px; border-radius: 0px; font-family: Menlo, Monaco, Consolas, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: inherit; background-color: inherit;">class Test:    def __init__(self):        self.foo = 11        self._bar = 23 </code></pre></div><p style="margin: 1.4em 0px;">如果你实例化此类，并尝试访问在__init__构造函数中定义的foo和_bar属性，会发生什么情况？ 让我们来看看：</p><div style="margin: 1em 0px;"><pre style="margin-top: 0px; margin-bottom: 0px; padding: calc(0.888889em); font-size: 0.9em; word-break: initial; overflow-wrap: initial; overflow: auto; background: #f6f6f6; border-radius: 4px;"><code style="margin: 0px; padding: 0px; border-radius: 0px; font-family: Menlo, Monaco, Consolas, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: inherit; background-color: inherit;">&gt;&gt;&gt; t = Test() &gt;&gt;&gt; t.foo 11 &gt;&gt;&gt; t._bar 23 </code></pre></div><p style="margin: 1.4em 0px;">你会看到_bar中的单个下划线并没有阻止我们&#8220;进入&#8221;类并访问该变量的值。</p><p style="margin: 1.4em 0px;">这是因为Python中的单个下划线前缀仅仅是一个约定 - 至少相对于变量和方法名而言。</p><p style="margin: 1.4em 0px;">但是，前导下划线的确会影响从模块中导入名称的方式。</p><p style="margin: 1.4em 0px;">假设你在一个名为my_module的模块中有以下代码：</p><div style="margin: 1em 0px;"><pre style="margin-top: 0px; margin-bottom: 0px; padding: calc(0.888889em); font-size: 0.9em; word-break: initial; overflow-wrap: initial; overflow: auto; background: #f6f6f6; border-radius: 4px;"><code style="margin: 0px; padding: 0px; border-radius: 0px; font-family: Menlo, Monaco, Consolas, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: inherit; background-color: inherit;"># This is my_module.py:  def external_func():    return 23  def _internal_func():    return 42 </code></pre></div><p style="margin: 1.4em 0px;">现在，如果使用通配符从模块中导入所有名称，则Python不会导入带有前导下划线的名称（除非模块定义了覆盖此行为的__all__列表）：</p><div style="margin: 1em 0px;"><pre style="margin-top: 0px; margin-bottom: 0px; padding: calc(0.888889em); font-size: 0.9em; word-break: initial; overflow-wrap: initial; overflow: auto; background: #f6f6f6; border-radius: 4px;"><code style="margin: 0px; padding: 0px; border-radius: 0px; font-family: Menlo, Monaco, Consolas, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: inherit; background-color: inherit;">&gt;&gt;&gt; from my_module import * &gt;&gt;&gt; external_func() 23 &gt;&gt;&gt; _internal_func() NameError: "name '_internal_func' is not defined" </code></pre></div><p style="margin: 1.4em 0px;">顺便说一下，应该避免通配符导入，因为它们使名称空间中存在哪些名称不清楚。 为了清楚起见，坚持常规导入更好。<br /></p><p style="margin: 1.4em 0px;">与通配符导入不同，常规导入不受前导单个下划线命名约定的影响：</p><div style="margin: 1em 0px;"><pre style="margin-top: 0px; margin-bottom: 0px; padding: calc(0.888889em); font-size: 0.9em; word-break: initial; overflow-wrap: initial; overflow: auto; background: #f6f6f6; border-radius: 4px;"><code style="margin: 0px; padding: 0px; border-radius: 0px; font-family: Menlo, Monaco, Consolas, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: inherit; background-color: inherit;">&gt;&gt;&gt; import my_module &gt;&gt;&gt; my_module.external_func() 23 &gt;&gt;&gt; my_module._internal_func() 42 </code></pre></div><p style="margin: 1.4em 0px;">我知道这一点可能有点令人困惑。 如果你遵循PEP 8推荐，避免通配符导入，那么你真正需要记住的只有这个：</p><blockquote style="margin: 1.4em 0px; padding-left: 1em; color: #646464; border-left-width: 3px; border-left-color: #d3d3d3;">单个下划线是一个Python命名约定，表示这个名称是供内部使用的。 它通常不由Python解释器强制执行，仅仅作为一种对程序员的提示。</blockquote><h2>2. 单末尾下划线 var_</h2><p style="margin: 1.4em 0px;">有时候，一个变量的最合适的名称已经被一个关键字所占用。 因此，像class或def这样的名称不能用作Python中的变量名称。 在这种情况下，你可以附加一个下划线来解决命名冲突：</p><div style="margin: 1em 0px;"><pre style="margin-top: 0px; margin-bottom: 0px; padding: calc(0.888889em); font-size: 0.9em; word-break: initial; overflow-wrap: initial; overflow: auto; background: #f6f6f6; border-radius: 4px;"><code style="margin: 0px; padding: 0px; border-radius: 0px; font-family: Menlo, Monaco, Consolas, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: inherit; background-color: inherit;">&gt;&gt;&gt; def make_object(name, class): SyntaxError: "invalid syntax"  &gt;&gt;&gt; def make_object(name, class_): ...    pass </code></pre></div><p style="margin: 1.4em 0px;">总之，单个末尾下划线（后缀）是一个约定，用来避免与Python关键字产生命名冲突。 PEP 8解释了这个约定。</p><h2>3. 双前导下划线 __var</h2><p style="margin: 1.4em 0px;">到目前为止，我们所涉及的所有命名模式的含义，来自于已达成共识的约定。 而对于以双下划线开头的Python类的属性（包括变量和方法），情况就有点不同了。</p><p style="margin: 1.4em 0px;">双下划线前缀会导致Python解释器重写属性名称，以避免子类中的命名冲突。</p><p style="margin: 1.4em 0px;">这也叫做名称修饰（name mangling） - 解释器更改变量的名称，以便在类被扩展的时候不容易产生冲突。</p><p style="margin: 1.4em 0px;">我知道这听起来很抽象。 因此，我组合了一个小小的代码示例来予以说明：</p><div style="margin: 1em 0px;"><pre style="margin-top: 0px; margin-bottom: 0px; padding: calc(0.888889em); font-size: 0.9em; word-break: initial; overflow-wrap: initial; overflow: auto; background: #f6f6f6; border-radius: 4px;"><code style="margin: 0px; padding: 0px; border-radius: 0px; font-family: Menlo, Monaco, Consolas, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: inherit; background-color: inherit;">class Test:    def __init__(self):        self.foo = 11        self._bar = 23        self.__baz = 23 </code></pre></div><p style="margin: 1.4em 0px;">让我们用内置的dir()函数来看看这个对象的属性：</p><div style="margin: 1em 0px;"><pre style="margin-top: 0px; margin-bottom: 0px; padding: calc(0.888889em); font-size: 0.9em; word-break: initial; overflow-wrap: initial; overflow: auto; background: #f6f6f6; border-radius: 4px;"><code style="margin: 0px; padding: 0px; border-radius: 0px; font-family: Menlo, Monaco, Consolas, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: inherit; background-color: inherit;">&gt;&gt;&gt; t = Test() &gt;&gt;&gt; dir(t) ['_Test__baz', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_bar', 'foo'] </code></pre></div><p style="margin: 1.4em 0px;">以上是这个对象属性的列表。 让我们来看看这个列表，并寻找我们的原始变量名称foo，_bar和__baz - 我保证你会注意到一些有趣的变化。<br /></p><ul style="padding: 0px; margin: 1.4em 0px; display: table;"><li style="list-style: none; display: table-row;">self.foo变量在属性列表中显示为未修改为foo。</li><li style="list-style: none; display: table-row;">self._bar的行为方式相同 - 它以_bar的形式显示在类上。 就像我之前说过的，在这种情况下，前导下划线仅仅是一个约定。 给程序员一个提示而已。</li><li style="list-style: none; display: table-row;">然而，对于self.__baz而言，情况看起来有点不同。 当你在该列表中搜索__baz时，你会看不到有这个名字的变量。</li></ul><p style="margin: 1.4em 0px;">__baz出什么情况了？</p><p style="margin: 1.4em 0px;">如果你仔细观察，你会看到此对象上有一个名为_Test__baz的属性。 这就是Python解释器所做的名称修饰。 它这样做是为了防止变量在子类中被重写。</p><p style="margin: 1.4em 0px;">让我们创建另一个扩展Test类的类，并尝试重写构造函数中添加的现有属性：</p><div style="margin: 1em 0px;"><pre style="margin-top: 0px; margin-bottom: 0px; padding: calc(0.888889em); font-size: 0.9em; word-break: initial; overflow-wrap: initial; overflow: auto; background: #f6f6f6; border-radius: 4px;"><code style="margin: 0px; padding: 0px; border-radius: 0px; font-family: Menlo, Monaco, Consolas, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: inherit; background-color: inherit;">class ExtendedTest(Test):    def __init__(self):        super().__init__()        self.foo = 'overridden'        self._bar = 'overridden'        self.__baz = 'overridden' </code></pre></div><p style="margin: 1.4em 0px;">现在，你认为foo，_bar和__baz的值会出现在这个ExtendedTest类的实例上吗？ 我们来看一看：</p><div style="margin: 1em 0px;"><pre style="margin-top: 0px; margin-bottom: 0px; padding: calc(0.888889em); font-size: 0.9em; word-break: initial; overflow-wrap: initial; overflow: auto; background: #f6f6f6; border-radius: 4px;"><code style="margin: 0px; padding: 0px; border-radius: 0px; font-family: Menlo, Monaco, Consolas, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: inherit; background-color: inherit;">&gt;&gt;&gt; t2 = ExtendedTest() &gt;&gt;&gt; t2.foo 'overridden' &gt;&gt;&gt; t2._bar 'overridden' &gt;&gt;&gt; t2.__baz AttributeError: "'ExtendedTest' object has no attribute '__baz'" </code></pre></div><p style="margin: 1.4em 0px;">等一下，当我们尝试查看t2 .__ baz的值时，为什么我们会得到AttributeError？ 名称修饰被再次触发了！ 事实证明，这个对象甚至没有__baz属性：</p><div style="margin: 1em 0px;"><pre style="margin-top: 0px; margin-bottom: 0px; padding: calc(0.888889em); font-size: 0.9em; word-break: initial; overflow-wrap: initial; overflow: auto; background: #f6f6f6; border-radius: 4px;"><code style="margin: 0px; padding: 0px; border-radius: 0px; font-family: Menlo, Monaco, Consolas, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: inherit; background-color: inherit;">&gt;&gt;&gt; dir(t2) ['_ExtendedTest__baz', '_Test__baz', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_bar', 'foo', 'get_vars'] </code></pre></div><p style="margin: 1.4em 0px;">正如你可以看到__baz变成_ExtendedTest__baz以防止意外修改：</p><div style="margin: 1em 0px;"><pre style="margin-top: 0px; margin-bottom: 0px; padding: calc(0.888889em); font-size: 0.9em; word-break: initial; overflow-wrap: initial; overflow: auto; background: #f6f6f6; border-radius: 4px;"><code style="margin: 0px; padding: 0px; border-radius: 0px; font-family: Menlo, Monaco, Consolas, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: inherit; background-color: inherit;">&gt;&gt;&gt; t2._ExtendedTest__baz 'overridden' </code></pre></div><p style="margin: 1.4em 0px;">但原来的_Test__baz还在：</p><div style="margin: 1em 0px;"><pre style="margin-top: 0px; margin-bottom: 0px; padding: calc(0.888889em); font-size: 0.9em; word-break: initial; overflow-wrap: initial; overflow: auto; background: #f6f6f6; border-radius: 4px;"><code style="margin: 0px; padding: 0px; border-radius: 0px; font-family: Menlo, Monaco, Consolas, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: inherit; background-color: inherit;">&gt;&gt;&gt; t2._Test__baz 42 </code></pre></div><p style="margin: 1.4em 0px;">双下划线名称修饰对程序员是完全透明的。 下面的例子证实了这一点：</p><div style="margin: 1em 0px;"><pre style="margin-top: 0px; margin-bottom: 0px; padding: calc(0.888889em); font-size: 0.9em; word-break: initial; overflow-wrap: initial; overflow: auto; background: #f6f6f6; border-radius: 4px;"><code style="margin: 0px; padding: 0px; border-radius: 0px; font-family: Menlo, Monaco, Consolas, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: inherit; background-color: inherit;">class ManglingTest:    def __init__(self):        self.__mangled = 'hello'     def get_mangled(self):        return self.__mangled  &gt;&gt;&gt; ManglingTest().get_mangled() 'hello' &gt;&gt;&gt; ManglingTest().__mangled AttributeError: "'ManglingTest' object has no attribute '__mangled'" </code></pre></div><p style="margin: 1.4em 0px;">名称修饰是否也适用于方法名称？ 是的，也适用。名称修饰会影响在一个类的上下文中，以两个下划线字符（"dunders"）开头的<span style="font-weight: 600;">所有</span>名称：</p><div style="margin: 1em 0px;"><pre style="margin-top: 0px; margin-bottom: 0px; padding: calc(0.888889em); font-size: 0.9em; word-break: initial; overflow-wrap: initial; overflow: auto; background: #f6f6f6; border-radius: 4px;"><code style="margin: 0px; padding: 0px; border-radius: 0px; font-family: Menlo, Monaco, Consolas, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: inherit; background-color: inherit;">class MangledMethod:    def __method(self):        return 42     def call_it(self):        return self.__method()  &gt;&gt;&gt; MangledMethod().__method() AttributeError: "'MangledMethod' object has no attribute '__method'" &gt;&gt;&gt; MangledMethod().call_it() 42 </code></pre></div><p style="margin: 1.4em 0px;">这是另一个也许令人惊讶的运用名称修饰的例子：</p><div style="margin: 1em 0px;"><pre style="margin-top: 0px; margin-bottom: 0px; padding: calc(0.888889em); font-size: 0.9em; word-break: initial; overflow-wrap: initial; overflow: auto; background: #f6f6f6; border-radius: 4px;"><code style="margin: 0px; padding: 0px; border-radius: 0px; font-family: Menlo, Monaco, Consolas, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: inherit; background-color: inherit;">_MangledGlobal__mangled = 23  class MangledGlobal:    def test(self):        return __mangled  &gt;&gt;&gt; MangledGlobal().test() 23 </code></pre></div><p style="margin: 1.4em 0px;">在这个例子中，我声明了一个名为_MangledGlobal__mangled的全局变量。然后我在名为MangledGlobal的类的上下文中访问变量。由于名称修饰，我能够在类的test()方法内，以__mangled来引用_MangledGlobal__mangled全局变量。<br /><br />Python解释器自动将名称__mangled扩展为_MangledGlobal__mangled，因为它以两个下划线字符开头。这表明名称修饰不是专门与类属性关联的。它适用于在类上下文中使用的两个下划线字符开头的任何名称。<br /><br />有很多要吸收的内容吧。<br /><br />老实说，这些例子和解释不是从我脑子里蹦出来的。我作了一些研究和加工才弄出来。我一直使用Python，有很多年了，但是像这样的规则和特殊情况并不总是浮现在脑海里。<br /><br />有时候程序员最重要的技能是&#8220;模式识别&#8221;，而且知道在哪里查阅信息。如果您在这一点上感到有点不知所措，请不要担心。慢慢来，试试这篇文章中的一些例子。<br /><br />让这些概念完全沉浸下来，以便你能够理解名称修饰的总体思路，以及我向您展示的一些其他的行为。如果有一天你和它们不期而遇，你会知道在文档中按什么来查。</p><h2>4. 双前导和双末尾下划线 _var_</h2><p style="margin: 1.4em 0px;">也许令人惊讶的是，如果一个名字同时以双下划线开始和结束，则不会应用名称修饰。 由双下划线前缀和后缀包围的变量不会被Python解释器修改：</p><div style="margin: 1em 0px;"><pre style="margin-top: 0px; margin-bottom: 0px; padding: calc(0.888889em); font-size: 0.9em; word-break: initial; overflow-wrap: initial; overflow: auto; background: #f6f6f6; border-radius: 4px;"><code style="margin: 0px; padding: 0px; border-radius: 0px; font-family: Menlo, Monaco, Consolas, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: inherit; background-color: inherit;">class PrefixPostfixTest:    def __init__(self):        self.__bam__ = 42  &gt;&gt;&gt; PrefixPostfixTest().__bam__ 42 </code></pre></div><p style="margin: 1.4em 0px;">但是，Python保留了有双前导和双末尾下划线的名称，用于特殊用途。 这样的例子有，__init__对象构造函数，或__call__ --- 它使得一个对象可以被调用。</p><p style="margin: 1.4em 0px;">这些dunder方法通常被称为神奇方法 - 但Python社区中的许多人（包括我自己）都不喜欢这种方法。</p><p style="margin: 1.4em 0px;">最好避免在自己的程序中使用以双下划线（&#8220;dunders&#8221;）开头和结尾的名称，以避免与将来Python语言的变化产生冲突。</p><h2>5.单下划线 _</h2><p style="margin: 1.4em 0px;">按照习惯，有时候单个独立下划线是用作一个名字，来表示某个变量是临时的或无关紧要的。<br /></p><p style="margin: 1.4em 0px;">例如，在下面的循环中，我们不需要访问正在运行的索引，我们可以使用&#8220;_&#8221;来表示它只是一个临时值：</p><div style="margin: 1em 0px;"><pre style="margin-top: 0px; margin-bottom: 0px; padding: calc(0.888889em); font-size: 0.9em; word-break: initial; overflow-wrap: initial; overflow: auto; background: #f6f6f6; border-radius: 4px;"><code style="margin: 0px; padding: 0px; border-radius: 0px; font-family: Menlo, Monaco, Consolas, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: inherit; background-color: inherit;">&gt;&gt;&gt; for _ in range(32): ...    print('Hello, World.') </code></pre></div><p style="margin: 1.4em 0px;">你也可以在拆分(unpacking)表达式中将单个下划线用作&#8220;不关心的&#8221;变量，以忽略特定的值。 同样，这个含义只是&#8220;依照约定&#8221;，并不会在Python解释器中触发特殊的行为。 单个下划线仅仅是一个有效的变量名称，会有这个用途而已。</p><p style="margin: 1.4em 0px;">在下面的代码示例中，我将汽车元组拆分为单独的变量，但我只对颜色和里程值感兴趣。 但是，为了使拆分表达式成功运行，我需要将包含在元组中的所有值分配给变量。 在这种情况下，&#8220;_&#8221;作为占位符变量可以派上用场：</p><div style="margin: 1em 0px;"><pre style="margin-top: 0px; margin-bottom: 0px; padding: calc(0.888889em); font-size: 0.9em; word-break: initial; overflow-wrap: initial; overflow: auto; background: #f6f6f6; border-radius: 4px;"><code style="margin: 0px; padding: 0px; border-radius: 0px; font-family: Menlo, Monaco, Consolas, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: inherit; background-color: inherit;">&gt;&gt;&gt; car = ('red', 'auto', 12, 3812.4) &gt;&gt;&gt; color, _, _, mileage = car  &gt;&gt;&gt; color 'red' &gt;&gt;&gt; mileage 3812.4 &gt;&gt;&gt; _ 12 </code></pre></div><p style="margin: 1.4em 0px;">除了用作临时变量之外，&#8220;_&#8221;是大多数Python REPL中的一个特殊变量，它表示由解释器评估的最近一个表达式的结果。</p><p style="margin: 1.4em 0px;">这样就很方便了，比如你可以在一个解释器会话中访问先前计算的结果，或者，你是在动态构建多个对象并与它们交互，无需事先给这些对象分配名字：</p><div style="margin: 1em 0px;"><pre style="margin-top: 0px; margin-bottom: 0px; padding: calc(0.888889em); font-size: 0.9em; word-break: initial; overflow-wrap: initial; overflow: auto; background: #f6f6f6; border-radius: 4px;"><code style="margin: 0px; padding: 0px; border-radius: 0px; font-family: Menlo, Monaco, Consolas, &quot;Andale Mono&quot;, &quot;lucida console&quot;, &quot;Courier New&quot;, monospace; font-size: inherit; background-color: inherit;">&gt;&gt;&gt; 20 + 3 23 &gt;&gt;&gt; _ 23 &gt;&gt;&gt; print(_) 23  &gt;&gt;&gt; list() [] &gt;&gt;&gt; _.append(1) &gt;&gt;&gt; _.append(2) &gt;&gt;&gt; _.append(3) &gt;&gt;&gt; _ [1, 2, 3] </code></pre></div><h2>Python下划线命名模式 - 小结</h2><p style="margin: 1.4em 0px;">以下是一个简短的小结，即&#8220;速查表&#8221;，罗列了我在本文中谈到的五种Python下划线模式的含义：</p><figure style="margin: 1.4em 0px;"><img src="https://pic3.zhimg.com/80/v2-cbc5c6037101c7d33cf0acd9f00a8cfa_hd.jpg" data-caption="" data-size="normal" data-rawwidth="732" data-rawheight="314" zh-lightbox-thumb=""  lazy"="" width="732" data-original="https://pic3.zhimg.com/v2-cbc5c6037101c7d33cf0acd9f00a8cfa_r.jpg" data-actualsrc="https://pic3.zhimg.com/v2-cbc5c6037101c7d33cf0acd9f00a8cfa_b.jpg" style="display: block; max-width: 100%; margin: 0px auto; cursor: zoom-in;"  alt="" /></figure><hr style="margin: 4em auto; width: 240px; max-width: 100%; border-right: none; border-bottom: none; border-left: none; border-image: initial; border-top-style: solid; border-top-color: #d3d3d3;" /><p style="margin: 1.4em 0px;">你想更深入了解学习Python知识体系，你可以看一下我们花费了一个多月整理了上百小时的几百个知识点体系内容：</p><p style="margin: 1.4em 0px 0px;"><a href="http://link.zhihu.com/?target=http%3A//www.magedu.com/73198.html/%3FPython_wenzhang_zhihu_jinke_16daopythonmiansiti_34019714" wrap=""  external"="" target="_blank" rel="nofollow noreferrer" data-za-detail-view-id="1043" style="text-decoration-line: none; cursor: pointer; border-bottom: 1px solid #808080;">【超全整理】《Python自动化全能开发从入门到精通》python基础教程笔记</a></p></div></div><div style="margin: 0px auto; color: #8590a6; padding-top: 16px; padding-bottom: 16px; overflow: hidden; width: 690px; font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Source Han Sans SC&quot;, &quot;Noto Sans CJK SC&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif; background-color: #ffffff;">发布于 2018-04-26</div><div style="overflow: hidden; width: 690px; margin: 0px auto; display: flex; color: #1a1a1a; font-family: -apple-system, BlinkMacSystemFont, &quot;Helvetica Neue&quot;, &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, &quot;Source Han Sans SC&quot;, &quot;Noto Sans CJK SC&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif; font-size: medium; background-color: #ffffff;"><div post-topics"="" style="display: flex; flex-flow: row wrap; align-items: center; margin-bottom: -10px; padding-top: 16px; padding-bottom: 16px;"><div topic"="" data-za-detail-view-path-module="TopicItem" data-za-extra-module="{&quot;card&quot;:{&quot;content&quot;:{&quot;type&quot;:&quot;Topic&quot;,&quot;token&quot;:&quot;19552832&quot;}}}" style="position: relative; display: inline-block; height: 33px; padding-right: 12px; padding-left: 12px; font-size: 13px; line-height: 33px; color: #0084ff; vertical-align: top; border-radius: 100px; background: rgba(0, 132, 255, 0.1); margin-right: 5px; overflow: hidden; margin-bottom: 10px;"><a href="https://www.zhihu.com/topic/19552832" target="_blank" style="text-decoration-line: none;"><div style="position: relative; display: inline-block;"><div id="Popover3-toggle" aria-haspopup="true" aria-expanded="false" aria-owns="Popover3-content">Python</div></div></a></div></div></div><br />Reference:<br />https://zhuanlan.zhihu.com/p/36173202</div><img src ="http://www.cppblog.com/guijie/aggbug/216230.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/guijie/" target="_blank">杰哥</a> 2019-02-02 01:51 <a href="http://www.cppblog.com/guijie/archive/2019/02/02/216230.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>How to read *.data in Matlab and Python</title><link>http://www.cppblog.com/guijie/archive/2018/10/13/216005.html</link><dc:creator>杰哥</dc:creator><author>杰哥</author><pubDate>Fri, 12 Oct 2018 20:33:00 GMT</pubDate><guid>http://www.cppblog.com/guijie/archive/2018/10/13/216005.html</guid><wfw:comment>http://www.cppblog.com/guijie/comments/216005.html</wfw:comment><comments>http://www.cppblog.com/guijie/archive/2018/10/13/216005.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/guijie/comments/commentRss/216005.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/guijie/services/trackbacks/216005.html</trackback:ping><description><![CDATA[<div>See P2 of "HW2_545_2018_"<br /><br />In Matlab:</div><div>z = dlmread('spambase.data',',');</div><div>In Python:</div><div>import numpy as np</div><div>z = np.genfromtxt('spambase.data', dtype=float, delimiter=',')</div><div></div><img src ="http://www.cppblog.com/guijie/aggbug/216005.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/guijie/" target="_blank">杰哥</a> 2018-10-13 04:33 <a href="http://www.cppblog.com/guijie/archive/2018/10/13/216005.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[zz] Adversarial Nets Papers</title><link>http://www.cppblog.com/guijie/archive/2018/09/28/215982.html</link><dc:creator>杰哥</dc:creator><author>杰哥</author><pubDate>Fri, 28 Sep 2018 14:02:00 GMT</pubDate><guid>http://www.cppblog.com/guijie/archive/2018/09/28/215982.html</guid><wfw:comment>http://www.cppblog.com/guijie/comments/215982.html</wfw:comment><comments>http://www.cppblog.com/guijie/archive/2018/09/28/215982.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/guijie/comments/commentRss/215982.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/guijie/services/trackbacks/215982.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: The classic about Generative Adversarial NetworksFirst paper&nbsp;[Generative Adversarial Nets]&nbsp;[Paper]&nbsp;[Code](the First paper of GAN)Unclassified&nbsp;[Deep Generative Image Models using a ...&nbsp;&nbsp;<a href='http://www.cppblog.com/guijie/archive/2018/09/28/215982.html'>阅读全文</a><img src ="http://www.cppblog.com/guijie/aggbug/215982.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/guijie/" target="_blank">杰哥</a> 2018-09-28 22:02 <a href="http://www.cppblog.com/guijie/archive/2018/09/28/215982.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[zz] 2018 CVPR GAN 相关论文调研</title><link>http://www.cppblog.com/guijie/archive/2018/09/28/215981.html</link><dc:creator>杰哥</dc:creator><author>杰哥</author><pubDate>Fri, 28 Sep 2018 14:00:00 GMT</pubDate><guid>http://www.cppblog.com/guijie/archive/2018/09/28/215981.html</guid><wfw:comment>http://www.cppblog.com/guijie/comments/215981.html</wfw:comment><comments>http://www.cppblog.com/guijie/archive/2018/09/28/215981.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/guijie/comments/commentRss/215981.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/guijie/services/trackbacks/215981.html</trackback:ping><description><![CDATA[<h3><span style="color:#FF0000;">风格迁移</span></h3>  <p style="margin-left:0cm;"><strong>1. </strong><strong>PairedCycleGAN: Asymmetric Style Transfer for Applying and Removing Makeup</strong></p>  <p style="margin-left:0cm;">（给人脸化妆的风格转移）</p>  <p style="margin-left:0cm;"><span style="color:#0563c1;"><u><a href="http://openaccess.thecvf.com/content_cvpr_2018/papers/Chang_PairedCycleGAN_Asymmetric_Style_CVPR_2018_paper.pdf" rel="nofollow" target="_blank">http://openaccess.thecvf.com/content_cvpr_2018/papers/Chang_PairedCycleGAN_Asymmetric_Style_CVPR_2018_paper.pdf</a></u></span></p>  <p style="margin-left:0cm;">&nbsp;</p>  <p style="margin-left:0cm;"><strong>2.CartoonGAN: Generative Adversarial Networks for Photo Cartoonization</strong></p>  <p style="margin-left:0cm;">（将图片转化为卡通风格的GAN）</p>  <p style="margin-left:0cm;"><span style="color:#0563c1;"><u><a href="http://openaccess.thecvf.com/content_cvpr_2018/papers/Chen_CartoonGAN_Generative_Adversarial_CVPR_2018_paper.pdf" rel="nofollow" target="_blank">http://openaccess.thecvf.com/content_cvpr_2018/papers/Chen_CartoonGAN_Generative_Adversarial_CVPR_2018_paper.pdf</a></u></span></p>  <p style="margin-left:0cm;">&nbsp;</p>  <p style="margin-left:0cm;"><strong>3.StarGAN: Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation</strong></p>  <p style="margin-left:0cm;">（人脸多种风格转换）</p>  <p style="margin-left:0cm;"><span style="color:#0563c1;"><u><a href="http://openaccess.thecvf.com/content_cvpr_2018/papers/Choi_StarGAN_Unified_Generative_CVPR_2018_paper.pdf" rel="nofollow" target="_blank">http://openaccess.thecvf.com/content_cvpr_2018/papers/Choi_StarGAN_Unified_Generative_CVPR_2018_paper.pdf</a></u></span></p>  <p style="margin-left:0cm;">&nbsp;</p>  <p style="margin-left:0cm;"><strong>4.Multi-Content GAN for Few-Shot Font Style Transfer</strong></p>  <p style="margin-left:0cm;">（字体风格转换）</p>  <p style="margin-left:0cm;"><span style="color:#0563c1;"><u><a href="http://openaccess.thecvf.com/content_cvpr_2018/papers/Azadi_Multi-Content_GAN_for_CVPR_2018_paper.pdf" rel="nofollow" target="_blank">http://openaccess.thecvf.com/content_cvpr_2018/papers/Azadi_Multi-Content_GAN_for_CVPR_2018_paper.pdf</a></u></span></p>  <p style="margin-left:0cm;">&nbsp;</p>  <p style="margin-left:0cm;"><strong>5.DA-GAN: Instance-level Image Translation by Deep Attention Generative Adversarial Networks</strong></p>  <p style="margin-left:0cm;">（图到图转换）</p>  <p style="margin-left:0cm;"><span style="color:#0563c1;"><u><a href="http://openaccess.thecvf.com/content_cvpr_2018/papers/Ma_DA-GAN_Instance-Level_Image_CVPR_2018_paper.pdf" rel="nofollow" target="_blank">http://openaccess.thecvf.com/content_cvpr_2018/papers/Ma_DA-GAN_Instance-Level_Image_CVPR_2018_paper.pdf</a></u></span></p>  <p style="margin-left:0cm;">&nbsp;</p>  <p style="margin-left:0cm;"><strong>6. </strong><strong>Conditional Image-to-Image translation</strong></p>  <p style="margin-left:0cm;">（图到图的转换）</p>  <p style="margin-left:0cm;">http://openaccess.thecvf.com/content_cvpr_2018/papers/Lin_Conditional_Image-to-Image_Translation_CVPR_2018_paper.pdf</p>  <p style="margin-left:0cm;">&nbsp;</p>  <h3><a name="t2"></a><span style="color:#FF0000;">图片处理</span></h3>  <p style="margin-left:0cm;"><strong>1. </strong><strong>DeblurGAN: Blind Motion Deblurring Using Conditional Adversarial Networks</strong></p>  <p style="margin-left:0cm;">（去模糊）</p>  <p style="margin-left:0cm;">http://openaccess.thecvf.com/content_cvpr_2018/papers/Kupyn_DeblurGAN_Blind_Motion_CVPR_2018_paper.pdf</p>  <p style="margin-left:0cm;">&nbsp;</p>  <p style="margin-left:0cm;"><strong>2.Attentive Generative Adversarial Network for Raindrop Removal from A Single Image</strong></p>  <p style="margin-left:0cm;">（去除图片中的雨滴）</p>  <p style="margin-left:0cm;">http://openaccess.thecvf.com/content_cvpr_2018/papers/Qian_Attentive_Generative_Adversarial_CVPR_2018_paper.pdf</p>  <p style="margin-left:0cm;">&nbsp;</p>  <p style="margin-left:0cm;"><strong>3. </strong><strong>Deep Photo Enhancer: Unpaired Learning for Image Enhancement from Photographs with GANs</strong></p>  <p style="margin-left:0cm;">（用于照片增强）</p>  <p style="margin-left:0cm;">http://openaccess.thecvf.com/content_cvpr_2018/papers/Chen_Deep_Photo_Enhancer_CVPR_2018_paper.pdf</p>  <p style="margin-left:0cm;">&nbsp;</p>  <p style="margin-left:0cm;"><strong>4. </strong><strong>SeGAN: Segmenting and Generating the Invisible</strong></p>  <p style="margin-left:0cm;">（去遮挡）</p>  <p style="margin-left:0cm;">http://openaccess.thecvf.com/content_cvpr_2018/papers/Ehsani_SeGAN_Segmenting_and_CVPR_2018_paper.pdf</p>  <p style="margin-left:0cm;">&nbsp;</p>  <p style="margin-left:0cm;"><strong>5.Stacked Conditional Generative Adversarial Networks for Jointly Learning Shadow Detection and Shadow Removal</strong></p>  <p style="margin-left:0cm;">（去阴影）</p>  <p style="margin-left:0cm;"><span style="color:#0563c1;"><u><a href="http://openaccess.thecvf.com/content_cvpr_2018/papers/Wang_Stacked_Conditional_Generative_CVPR_2018_paper.pdf" rel="nofollow" target="_blank">http://openaccess.thecvf.com/content_cvpr_2018/papers/Wang_Stacked_Conditional_Generative_CVPR_2018_paper.pdf</a></u></span></p>  <p style="margin-left:0cm;">&nbsp;</p>  <p style="margin-left:0cm;"><strong>6.Image Blind Denoising With Generative Adversarial Network Based Noise Modeling</strong></p>  <p style="margin-left:0cm;">（去噪声）</p>  <p style="margin-left:0cm;"><span style="color:#0563c1;"><u><a href="http://openaccess.thecvf.com/content_cvpr_2018/papers/Chen_Image_Blind_Denoising_CVPR_2018_paper.pdf" rel="nofollow" target="_blank">http://openaccess.thecvf.com/content_cvpr_2018/papers/Chen_Image_Blind_Denoising_CVPR_2018_paper.pdf</a></u></span></p>  <p style="margin-left:0cm;">&nbsp;</p>  <p style="margin-left:0cm;"><strong>7. Single Image Dehazing via Conditional Generative Adversarial Network</strong></p>  <p style="margin-left:0cm;">（去噪声）</p>  <p style="margin-left:0cm;">http://openaccess.thecvf.com/content_cvpr_2018/papers/Li_Single_Image_Dehazing_CVPR_2018_paper.pdf</p>  <p style="margin-left:0cm;">&nbsp;</p>  <h3><a name="t3"></a><span style="color:#FF0000;">图片生成</span></h3>  <p style="margin-left:0cm;"><strong>1. ST-GAN: Spatial Transformer Generative Adversarial Networks for Image Compositing</strong></p>  <p style="margin-left:0cm;">（空间转换生成图片）</p>  <p style="margin-left:0cm;">http://openaccess.thecvf.com/content_cvpr_2018/papers/Lin_ST-GAN_Spatial_Transformer_CVPR_2018_paper.pdf</p>  <p style="margin-left:0cm;">&nbsp;</p>  <p style="margin-left:0cm;">2. <strong>SketchyGAN: Towards Diverse and Realistic Sketch to Image Synthesis</strong></p>  <p style="margin-left:0cm;">（由边框生成图片）</p>  <p style="margin-left:0cm;">http://openaccess.thecvf.com/content_cvpr_2018/papers/Chen_SketchyGAN_Towards_Diverse_CVPR_2018_paper.pdf</p>  <p style="margin-left:0cm;">&nbsp;</p>  <p style="margin-left:0cm;"><strong>3. </strong><strong>TextureGAN: Controlling Deep Image Synthesis with Texture Patches</strong></p>  <p style="margin-left:0cm;">（由纹路生成图片）</p>  <p style="margin-left:0cm;">http://openaccess.thecvf.com/content_cvpr_2018/papers/Xian_TextureGAN_Controlling_Deep_CVPR_2018_paper.pdf</p>  <p style="margin-left:0cm;">&nbsp;</p>  <p style="margin-left:0cm;"><strong>4. Eye In-Painting with Exemplar Generative Adversarial Networks</strong></p>  <p style="margin-left:0cm;">（给人物画眼睛）</p>  <p style="margin-left:0cm;">http://openaccess.thecvf.com/content_cvpr_2018/papers/Dolhansky_Eye_In-Painting_With_CVPR_2018_paper.pdf</p>  <p style="margin-left:0cm;">&nbsp;</p>  <p style="margin-left:0cm;"><strong>5.Photographic Text-to-Image Synthesis with a Hierarchically-nested Adversarial Network</strong></p>  <p style="margin-left:0cm;">（文本生成图片）</p>  <p style="margin-left:0cm;">http://openaccess.thecvf.com/content_cvpr_2018/papers/Zhang_Photographic_Text-to-Image_Synthesis_CVPR_2018_paper.pdf</p>  <p style="margin-left:0cm;">&nbsp;</p>  <p style="margin-left:0cm;"><strong>6. Logo Synthesis and Manipulation with Clustered Generative Adversarial Networks</strong></p>  <p style="margin-left:0cm;">（生成logo）</p>  <p style="margin-left:0cm;">http://openaccess.thecvf.com/content_cvpr_2018/papers/Sage_Logo_Synthesis_and_CVPR_2018_paper.pdf</p>  <p style="margin-left:0cm;">&nbsp;</p>  <p style="margin-left:0cm;"><strong>7. </strong><strong>Cross-View Image Synthesis Using Conditional GANs</strong></p>  <p style="margin-left:0cm;">（街区俯视图和直视转换）</p>  <p style="margin-left:0cm;">http://openaccess.thecvf.com/content_cvpr_2018/papers/Regmi_Cross-View_Image_Synthesis_CVPR_2018_paper.pdf</p>  <p style="margin-left:0cm;">&nbsp;</p>  <p style="margin-left:0cm;"><strong>8. </strong><strong>AttnGAN: Fine-Grained Text to Image Generation with Attentional Generative Adversarial Networks</strong></p>  <p style="margin-left:0cm;">（文本生成图片）</p>  <p style="margin-left:0cm;">http://openaccess.thecvf.com/content_cvpr_2018/papers/Xu_AttnGAN_Fine-Grained_Text_CVPR_2018_paper.pdf</p>  <p style="margin-left:0cm;">&nbsp;</p>  <p style="margin-left:0cm;"><strong>9. High-Resolution Image Synthesis and Semantic Manipulation with Conditional GANs</strong></p>  <p style="margin-left:0cm;">（图像高分辨率）</p>  <p style="margin-left:0cm;">http://openaccess.thecvf.com/content_cvpr_2018/papers/Wang_High-Resolution_Image_Synthesis_CVPR_2018_paper.pdf</p>  <p style="margin-left:0cm;">&nbsp;</p>  <h3><a name="t4"></a><span style="color:#FF0000;">人脸相关</span></h3>  <p style="margin-left:0cm;"><strong>1. </strong><strong>Finding Tiny Faces in the Wild with Generative Adversarial Network</strong></p>  <p style="margin-left:0cm;">（对低分辨率的人脸检测）</p>  <p style="margin-left:0cm;">http://openaccess.thecvf.com/content_cvpr_2018/papers/Bai_Finding_Tiny_Faces_CVPR_2018_paper.pdf</p>  <p style="margin-left:0cm;">&nbsp;</p>  <p style="margin-left:0cm;"><strong>2. </strong><strong>Learning Face Age Progression: A Pyramid Architecture of GANs</strong></p>  <p style="margin-left:0cm;">（预测年龄）</p>  <p style="margin-left:0cm;">http://openaccess.thecvf.com/content_cvpr_2018/papers/Yang_Learning_Face_Age_CVPR_2018_paper.pdf</p>  <p style="margin-left:0cm;">&nbsp;</p>  <p style="margin-left:0cm;"><strong>3. </strong><strong>Super-FAN: Integrated facial landmark localization and super-resolution of real-world low resolution faces in arbitrary poses with GANs</strong></p>  <p style="margin-left:0cm;">（对低分辨率人脸超分辨率）</p>  <p style="margin-left:0cm;">http://openaccess.thecvf.com/content_cvpr_2018/papers/Bulat_Super-FAN_Integrated_Facial_CVPR_2018_paper.pdf</p>  <p style="margin-left:0cm;"><strong>4. <a href="http://openaccess.thecvf.com/content_cvpr_2018/html/Bao_Towards_Open-Set_Identity_CVPR_2018_paper.html" rel="nofollow" target="_blank"><span style="color:#000000;">Towards Open-Set Identity Preserving Face Synthesis</span></a></strong></p>  <p style="margin-left:0cm;">（人脸合成）</p>  <p style="margin-left:0cm;">http://openaccess.thecvf.com/content_cvpr_2018/papers/Bao_Towards_Open-Set_Identity_CVPR_2018_paper.pdf</p>  <p style="margin-left:0cm;">&nbsp;</p>  <p style="margin-left:0cm;"><strong>5. Weakly Supervised Facial Action Unit Recognition through Adversarial Training</strong></p>  <p style="margin-left:0cm;">（人脸表情识别）</p>  <p style="margin-left:0cm;">http://openaccess.thecvf.com/content_cvpr_2018/papers/Peng_Weakly_Supervised_Facial_CVPR_2018_paper.pdf</p>  <p style="margin-left:0cm;">&nbsp;</p>  <p style="margin-left:0cm;"><strong>6.FaceID-GAN: Learning a Symmetry Three-Player GAN for Identity-Preserving Face Synthesis</strong></p>  <p style="margin-left:0cm;">（生成多角度人脸）</p>  <p style="margin-left:0cm;"><span style="color:#0563c1;"><u><a href="http://openaccess.thecvf.com/content_cvpr_2018/papers/Shen_FaceID-GAN_Learning_a_CVPR_2018_paper.pdf" rel="nofollow" target="_blank">http://openaccess.thecvf.com/content_cvpr_2018/papers/Shen_FaceID-GAN_Learning_a_CVPR_2018_paper.pdf</a></u></span></p>  <p style="margin-left:0cm;">&nbsp;</p>  <p style="margin-left:0cm;"><strong>7. </strong><strong>UV-GAN: Adversarial Facial UV Map Completion for Pose-invariant Face Recognition</strong></p>  <p style="margin-left:0cm;">（人脸生成）</p>  <p style="margin-left:0cm;"><span style="color:#0563c1;"><u><a href="http://openaccess.thecvf.com/content_cvpr_2018/papers/Deng_UV-GAN_Adversarial_Facial_CVPR_2018_paper.pdf" rel="nofollow" target="_blank">http://openaccess.thecvf.com/content_cvpr_2018/papers/Deng_UV-GAN_Adversarial_Facial_CVPR_2018_paper.pdf</a></u></span></p>  <p style="margin-left:0cm;">&nbsp;</p>  <p style="margin-left:0cm;"><strong>8.Face Aging with Identity-Preserved Conditional Generative Adversarial Networks</strong></p>  <p style="margin-left:0cm;">（人脸老化）</p>  <p style="margin-left:0cm;"><span style="color:#0563c1;"><u><a href="http://openaccess.thecvf.com/content_cvpr_2018/papers/Wang_Face_Aging_With_CVPR_2018_paper.pdf" rel="nofollow" target="_blank">http://openaccess.thecvf.com/content_cvpr_2018/papers/Wang_Face_Aging_With_CVPR_2018_paper.pdf</a></u></span></p>  <p style="margin-left:0cm;">&nbsp;</p>  <h3><a name="t5"></a><span style="color:#FF0000;">人体相关</span></h3>  <p style="margin-left:0cm;"><strong>1. </strong><strong>Deformable GANs for Pose-based Human Image Generation</strong></p>  <p style="margin-left:0cm;">（人物姿态迁移）</p>  <p style="margin-left:0cm;">http://openaccess.thecvf.com/content_cvpr_2018/papers/Siarohin_Deformable_GANs_for_CVPR_2018_paper.pdf</p>  <p style="margin-left:0cm;">&nbsp;</p>  <p style="margin-left:0cm;"><strong>2. </strong><strong>Social GAN: Socially Acceptable Trajectories with Generative Adversarial Networks</strong></p>  <p style="margin-left:0cm;">(用GAN生成人行为轨迹追踪)</p>  <p style="margin-left:0cm;">http://openaccess.thecvf.com/content_cvpr_2018/papers/Gupta_Social_GAN_Socially_CVPR_2018_paper.pdf</p>  <p style="margin-left:0cm;">&nbsp;</p>  <p style="margin-left:0cm;"><strong>3. </strong><strong>GANerated Hands for Real-Time 3D Hand Tracking from Monocular RGB</strong></p>  <p style="margin-left:0cm;">（用GAN生成的手势图片做手势追踪的数据集）</p>  <p style="margin-left:0cm;">http://openaccess.thecvf.com/content_cvpr_2018/papers/Mueller_GANerated_Hands_for_CVPR_2018_paper.pdf</p>  <p style="margin-left:0cm;">&nbsp;</p>  <p style="margin-left:0cm;"><strong>4. Multistage Adversarial Losses for Pose-Based Human Image Synthesis</strong></p>  <p style="margin-left:0cm;">（人体姿态合成）</p>  <p style="margin-left:0cm;"><span style="color:#0563c1;"><u><a href="http://openaccess.thecvf.com/content_cvpr_2018/papers/Si_Multistage_Adversarial_Losses_CVPR_2018_paper.pdf" rel="nofollow" target="_blank">http://openaccess.thecvf.com/content_cvpr_2018/papers/Si_Multistage_Adversarial_Losses_CVPR_2018_paper.pdf</a></u></span></p>  <p style="margin-left:0cm;"><strong>5. Disentangled Person Image Generation</strong></p>  <p style="margin-left:0cm;">（人体合成）</p>  <p style="margin-left:0cm;">http://openaccess.thecvf.com/content_cvpr_2018/papers/Ma_Disentangled_Person_Image_CVPR_2018_paper.pdf</p>  <p style="margin-left:0cm;">&nbsp;</p>  <h3><a name="t6"></a><span style="color:#FF0000;">domain adaptation</span></h3>  <p>（这个没来得及找了，可能转行咯~ 唉）</p>  <p style="margin-left:0cm;"><strong>1. Generate to Adapt: Aligning Domains Using Generative Adversarial Networks</strong></p>  <p style="margin-left:0cm;">&nbsp;</p>  <p style="margin-left:0cm;"><strong>2. Re-Weighted Adversarial Adaptation Network for Unsupervised Domain Adaptation</strong></p>  <p style="margin-left:0cm;">&nbsp;</p>  <p style="margin-left:0cm;"><strong>3. Adversarial Feature Augmentation for Unsupervised Domain Adaptation</strong></p>  <p style="margin-left:0cm;">&nbsp;</p>  <p style="margin-left:0cm;"><strong>4. Domain Generalization With Adversarial Feature Learning</strong></p>  <p style="margin-left:0cm;">&nbsp;</p>  <p style="margin-left:0cm;"><strong>5. Image to Image Translation for Domain Adaptation</strong></p>  <p style="margin-left:0cm;">&nbsp;</p>  <p style="margin-left:0cm;"><strong>6. Duplex Generative Adversarial Network for Unsupervised Domain Adaptation</strong></p>  <p style="margin-left:0cm;">&nbsp;</p>  <p style="margin-left:0cm;"><strong>7. Conditional Generative Adversarial Network for Structured Domain Adaptation</strong></p>  <p style="margin-left:0cm;">&nbsp;</p>  <h3><a name="t7"></a><span style="color:#FF0000;">目标跟踪检测</span></h3>  <p style="margin-left:0cm;"><strong>1.Generative Adversarial Learning Towards Fast Weakly Supervised Detection</strong></p>  <p style="margin-left:0cm;">（弱监督检测）</p>  <p style="margin-left:0cm;">http://openaccess.thecvf.com/content_cvpr_2018/papers/Shen_Generative_Adversarial_Learning_CVPR_2018_paper.pdf</p>  <p style="margin-left:0cm;">&nbsp;</p>  <p style="margin-left:0cm;"><strong>2. SINT++: Robust Visual Tracking via Adversarial Positive Instance Generation</strong></p>  <p style="margin-left:0cm;">（对抗学习生成轨迹样本）</p>  <p style="margin-left:0cm;">http://openaccess.thecvf.com/content_cvpr_2018/papers/Wang_SINT_Robust_Visual_CVPR_2018_paper.pdf</p>  <p style="margin-left:0cm;">&nbsp;</p>  <p style="margin-left:0cm;"><strong>3. VITAL: VIsual Tracking via Adversarial Learning</strong></p>  <p style="margin-left:0cm;">http://openaccess.thecvf.com/content_cvpr_2018/papers/Song_VITAL_VIsual_Tracking_CVPR_2018_paper.pdf</p>  <p style="margin-left:0cm;">&nbsp;</p>  <h3><a name="t8"></a><span style="color:#FF0000;">GAN</span><span style="color:#FF0000;">模型优化</span></h3>  <p style="margin-left:0cm;"><strong>1. </strong><strong>SGAN: An Alternative Training of Generative Adversarial Network</strong></p>  <p style="margin-left:0cm;">（替代训练GAN）</p>  <p style="margin-left:0cm;">http://openaccess.thecvf.com/content_cvpr_2018/papers/Chavdarova_SGAN_An_Alternative_CVPR_2018_paper.pdf</p>  <p style="margin-left:0cm;">&nbsp;</p>  <p style="margin-left:0cm;"><strong>2. </strong><strong>GAGAN: Geometry-Aware Generative Adversarial Networks</strong></p>  <p style="margin-left:0cm;">（一种关注几何外形的GAN）</p>  <p style="margin-left:0cm;">http://openaccess.thecvf.com/content_cvpr_2018/papers/Kossaifi_GAGAN_Geometry-Aware_Generative_CVPR_2018_paper.pdf</p>  <p style="margin-left:0cm;">&nbsp;</p>  <p style="margin-left:0cm;"><strong>3.Global versus Localized Generative Adversarial Nets</strong></p>  <p style="margin-left:0cm;">(局部优化GAN)</p>  <p style="margin-left:0cm;"><span style="color:#0563c1;"><u><a href="http://openaccess.thecvf.com/content_cvpr_2018/papers/Qi_Global_Versus_Localized_CVPR_2018_paper.pdf" rel="nofollow" target="_blank">http://openaccess.thecvf.com/content_cvpr_2018/papers/Qi_Global_Versus_Localized_CVPR_2018_paper.pdf</a></u></span></p>  <p style="margin-left:0cm;">&nbsp;</p>  <p style="margin-left:0cm;"><strong>4. Generative Adversarial Image Synthesis with Decision Tree Latent Controller</strong></p>  <p style="margin-left:0cm;">（决策树）</p>  <p style="margin-left:0cm;"><span style="color:#0563c1;"><u><a href="http://openaccess.thecvf.com/content_cvpr_2018/papers/Kaneko_Generative_Adversarial_Image_CVPR_2018_paper.pdf" rel="nofollow" target="_blank">http://openaccess.thecvf.com/content_cvpr_2018/papers/Kaneko_Generative_Adversarial_Image_CVPR_2018_paper.pdf</a></u></span></p>  <p style="margin-left:0cm;">&nbsp;</p>  <p style="margin-left:0cm;"><strong>5. Unsupervised Deep Generative Adversarial Hashing Network</strong></p>  <p style="margin-left:0cm;">（哈希GAN）</p>  <p style="margin-left:0cm;">http://openaccess.thecvf.com/content_cvpr_2018/papers/Dizaji_Unsupervised_Deep_Generative_CVPR_2018_paper.pdf</p>  <p style="margin-left:0cm;">&nbsp;</p>  <p style="margin-left:0cm;"><strong>6. Multi-Agent Diverse Generative Adversarial Networks</strong></p>  <p style="margin-left:0cm;">（多个生成器GAN）</p>  <p style="margin-left:0cm;">http://openaccess.thecvf.com/content_cvpr_2018/papers/Ghosh_Multi-Agent_Diverse_Generative_CVPR_2018_paper.pdf</p>  <p style="margin-left:0cm;">&nbsp;</p>  <p style="margin-left:0cm;"><strong>7. </strong><strong>Duplex Generative Adversarial Network for Unsupervised Domain Adaptation</strong></p>  <p style="margin-left:0cm;">（双鉴别器GAN）</p>  <p style="margin-left:0cm;">http://openaccess.thecvf.com/content_cvpr_2018/papers/Hu_Duplex_Generative_Adversarial_CVPR_2018_paper.pdf</p>  <p style="margin-left:0cm;">&nbsp;</p>  <h3><a name="t9"></a><span style="color:#FF0000;">图像分割</span></h3>  <p style="margin-left:0cm;"><strong>1. </strong><strong>Translating and Segmenting Multimodal Medical Volumes With Cycle- and Shape-Consistency Generative Adversarial Network</strong></p>  <p style="margin-left:0cm;">（图像分割）</p>  <p style="margin-left:0cm;">http://openaccess.thecvf.com/content_cvpr_2018/papers/Zhang_Translating_and_Segmenting_CVPR_2018_paper.pdf</p>  <p style="margin-left:0cm;">&nbsp;</p>  <h3><a name="t10"></a><span style="color:#FF0000;">行人重识别</span></h3>  <p style="margin-left:0cm;"><strong>1. </strong><strong>Person Transfer GAN to Bridge Domain Gap for Person Re-Identification</strong></p>  <p style="margin-left:0cm;">（用GAN生成的人体检测的图片）</p>  <p style="margin-left:0cm;">http://openaccess.thecvf.com/content_cvpr_2018/papers/Wei_Person_Transfer_GAN_CVPR_2018_paper.pdf</p>  <p style="margin-left:0cm;">&nbsp;</p>  <p style="margin-left:0cm;"><strong>2. Image-Image Domain Adaptation with Preserved Self-Similarity and Domain-Dissimilarity for Person Re-identification</strong></p>  <p style="margin-left:0cm;">http://openaccess.thecvf.com/content_cvpr_2018/papers/Deng_Image-Image_Domain_Adaptation_CVPR_2018_paper.pdf</p>  <p style="margin-left:0cm;">&nbsp;</p>  <h3><a name="t11"></a><span style="color:#FF0000;">视觉特征提取</span></h3>  <p style="margin-left:0cm;"><strong>1. Visual Feature Attribution using Wasserstein GANs</strong></p>  <p style="margin-left:0cm;">http://openaccess.thecvf.com/content_cvpr_2018/papers/Baumgartner_Visual_Feature_Attribution_CVPR_2018_paper.pdf</p>  <p style="margin-left:0cm;">&nbsp;</p>  <h3><a name="t12"></a><span style="color:#FF0000;">域自适应学习</span></h3>  <p style="margin-left:0cm;"><strong>1. </strong><strong>Generate To Adapt: Aligning Domains using Generative Adversarial Networks</strong></p>  <p style="margin-left:0cm;">（视觉域自适应）</p>  <p style="margin-left:0cm;">http://openaccess.thecvf.com/content_cvpr_2018/papers/Sankaranarayanan_Generate_to_Adapt_CVPR_2018_paper.pdf</p>  <p style="margin-left:0cm;">&nbsp;</p>  <h3><a name="t13"></a><span style="color:#FF0000;">图像检索</span></h3>  <p style="margin-left:0cm;"><strong>1. HashGAN: Deep Learning to Hash with Pair Conditional Wasserstein GAN</strong></p>  <p style="margin-left:0cm;">http://openaccess.thecvf.com/content_cvpr_2018/papers/Cao_HashGAN_Deep_Learning_CVPR_2018_paper.pdf</p>  <p style="margin-left:0cm;">&nbsp;</p>  <h3><a name="t14"></a><span style="color:#FF0000;">迁移学习</span></h3>  <p style="margin-left:0cm;"><strong>1.Partial Transfer Learning With Selective Adversarial Networks</strong></p>  <p style="margin-left:0cm;">http://openaccess.thecvf.com/content_cvpr_2018/papers/Cao_Partial_Transfer_Learning_CVPR_2018_paper.pdf</p>  <p style="margin-left:0cm;">&nbsp;</p>  <h3><a name="t15"></a><span style="color:#FF0000;">视频生成</span></h3>  <p style="margin-left:0cm;"><strong>1. </strong><strong>MoCoGAN: Decomposing Motion and Content for Video Generation</strong></p>  <p style="margin-left:0cm;">（用GAN生成视频）</p>  <p style="margin-left:0cm;">http://openaccess.thecvf.com/content_cvpr_2018/papers/Tulyakov_MoCoGAN_Decomposing_Motion_CVPR_2018_paper.pdf</p>  <p style="margin-left:0cm;"><strong>2. Learning to Generate Time-Lapse Videos Using Multi-Stage Dynamic Generative Adversarial Networks</strong></p>  <p style="margin-left:0cm;">（生成延时视频）</p>  <p style="margin-left:0cm;">http://openaccess.thecvf.com/content_cvpr_2018/papers/Xiong_Learning_to_Generate_CVPR_2018_paper.pdf</p>  <p style="margin-left:0cm;">&nbsp;</p>  <h3><a name="t16"></a><strong>小结：</strong></h3>  <p style="margin-left:0cm;">&nbsp; 可以看出GAN相关的论文还不少呀，各个方面的都有，可是我个人觉得，可能没有那种特别厉害的吧~hh</p>--------------------- 本文来自 眉间细雪 的CSDN 博客 ，全文地址请点击：https://blog.csdn.net/weixin_42445501/article/details/82792311?utm_source=copy&nbsp;<img src ="http://www.cppblog.com/guijie/aggbug/215981.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/guijie/" target="_blank">杰哥</a> 2018-09-28 22:00 <a href="http://www.cppblog.com/guijie/archive/2018/09/28/215981.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>