[{"title":"食为民天","url":"https://eustomaqua.github.io/2025/2024-12-14-annual-summary/","content":"<link rel=\"stylesheet\" class=\"aplayer-secondary-style-marker\" href=\"/assets/css/APlayer.min.css\"><script src=\"/assets/js/APlayer.min.js\" class=\"aplayer-secondary-script-marker\"></script><!--\n民为国本，食为民天，树德务滋，树基务坚\n民以食为天\n-->\n\n\n<p>不知道是不是因为在这边华人算少数，感觉现在听歌都是听的中文甚至是老歌，有多老呢，SHE，都追溯到小学时代了。还有林俊杰，以前我主要是对他那首杀手印象很深，旋律好听歌词变态，上次有人给我推荐了他的新歌光阴副本，然后发现自己莫名其妙循环了很久Turn Of A Page。还有I Sent My Therapist to Therapy，今年四月一号还是二号Alec Benjamin来哥哈开演唱会，我好像是提前了半个月还是多久发现的，剩下的票太贵，一千多虽然也不是不行，但想想那段时间好忙，算了。可是没有最忙只有更忙，这几个月比三四月份癫多了</p>\n<p>M前几天回来和他吃饭，他问我暑假回国没，我说提前六月初回了，他问我啥感受，我说“好吃”，他😂……不是我说，哥哈的中餐馆有一个算一个，没几个能打的，放国内过阵子都得倒闭吧，而且有个规律，刚开业时候还行的过段时间就不行了，据有个dk同事说这是厨师们到处跳槽涨工资，good to know，原来靠这涨身价的不止码农。我现在只能靠泰餐改善生活，食堂叫Rabbit名副其实都是喂Rabbit的 (ironically, 连兔子都不是只吃素的)。去年我从新加坡回去时候跟同学吃饭，每吃一个都说好吃，我同学说“你怎么跟逃难的回来了似的”，现在北欧宁古塔比那时还不如，我都被逼得开始自己做饭了，当然也有四月份餐馆都涨了一波价的缘故，一个可颂都动辄三四十还是便宜的，哥哈真是太贵了，吃不起……</p>\n<p>我真是好想念当时在昆明吃的菌菇火锅，各种蘑菇，太好吃了。顺便体验了一把云南人民的用生命吃菌子，当时我问店员“听说有的菌子煮不熟会有毒？”想必经历了大风大浪的店员眉毛都没动一下“没事，你点的套餐里面没有毒的，只有处理不好会有不良反应的”，我“什么不良反应？”她 blabla 几条我也没记住。然后她放了个定时器，不到18分钟就是没好，没好之前连筷子都不给，网上说的果然是真的。然后到时间了店员还拿那种小试剂盒之类的玩意儿取了个样，得留联系电话，她还怕吓到我就说“没事，就是走个流程，万一有事儿可以查，一般没事”。但是真的好吃。还有焖锅，L说“我本来想咱们吃点儿好的，结果你就挑了个这么便宜的”，但我就是想吃啊，好几年都没吃过，国外火锅这么贵，焖锅更是没见过。更别说回来我这天天吃的啥啊，面条、速冻饺子、速冻披萨……哭了</p>\n<p>上次在小红书看见有人说河图身价很贵的，一首商业歌多少来着，莫名其妙就联想到像这样的大佬还要发灌水文章，那每篇都字斟句酌发得慢的怎么拼得过啊，学术界真是太卷了，混不下去。也不知道是不是因为烦心事太多，总是做离奇的梦，有反复出现的故人，也有从没发生过的事，有一个其实醒了之后感觉有点吓人，我不想写在这儿免得再也忘不了了，虽然我暂时也还是没忘掉。但有一个我醒了之后很难受，是某个人梦里跟我说当初他怎么怎么回事，我收到那封信哭了，准备写回信的时候醒了。我至今还是不知道当时的真实原因到底是什么，只能猜测</p>\n<!-- 速冻披萨……哭了 闻者伤心见者落泪 连眉毛 -->\n<!-- 有时候我觉得我的直觉常常事后能被验证（当然也可能有很多不准的被忽略了），但我至今也不知道梦里的那个原因是不是当初的真实情况。我好像变成高敏感了 -->\n\n\n<p><strong>Update:</strong> turns out rabbit是打折的意思……</p>\n","categories":["此去经年"],"tags":[]},{"title":"莲花楼","url":"https://eustomaqua.github.io/2024/2024-12-12-annual-playlist/","content":"<link rel=\"stylesheet\" class=\"aplayer-secondary-style-marker\" href=\"/assets/css/APlayer.min.css\"><script src=\"/assets/js/APlayer.min.js\" class=\"aplayer-secondary-script-marker\"></script><p>已经很多年不看国产剧的我老来得“豆”，去年底栽进了莲花楼的坑。</p>\n<p>其实最开始我没打算看，是很偶然看到了李莲花&#x2F;李相夷的剧照，本来也没太在意，结果过了阵子发现脑子里老是在想，那就把原著看了吧——毕竟刷剧太费时间了一般懒得干。然后花了几天看完书，本来也没觉得怎么，结果又过了阵子发现不对，怎么脑子里还是老在想那个男的，那算了还是把剧也看了（其实在那之前我可能已经都快二十年不看国产剧了）。剧比书虐，看书时候我没太觉得怎么</p>\n<p>然后就一发而不可收，看个剧给自己看得心情不好，然后还又开始怕黑不敢关灯睡觉。其实有一说一我并不觉得这个剧拍得特别好，有挺多瑕疵的感觉。但是我喜欢男主，为了男主我还是把全剧坚持看完了。男三我也可以，我就讨厌男二。本来开始我觉得男三长得不太行（后来发现他可能比较适合现代装），但我喜不喜欢他跟他长得咋样没啥关系，主要还是剧情里这个人物我觉得可以，虽然我还是最喜欢男主，因为男主成了我喜欢的演员（为了他我连夜学会了剪视频——追星真的涨技能不是我说，另外大过年的别人家欢天喜地在过年我在哭坟也是醉了），后来意识到我喜欢的歌手和我喜欢的演员都来自湖南怀化，也太巧了吧</p>\n<p>我觉得长得好看的男演员还不少（指我小时候，现在的不太行），小时候我喜欢苏有朋，当时他演的电视剧我大部分都看了。后来看湄公河的时候我觉得彭于晏长得不错，虽然对比其他人来说我喜欢得可能有点敷衍，就当时他死的时候我在电影院里哭起来了，其他他演的我都没看。有次做梦挺搞笑的，我梦见彭于晏怎么残废了还是怎么着，我同学说“你也太狠了，得不到就把人给弄残”……不至于不至于，我没那么凶残。还有个同学也蛮搞笑的，她说“你喜欢彭于晏啊，那是我老公”，我😂“那你情敌可有点儿多”，她“没事儿我有很多个老公”，笑死</p>\n<p>毕业那会儿我喜欢Toby Regbo和海默，当时也看了几部他的电影，不过那几部实在是没什么剧情，顶着颜值巅峰的脸我都看不下去，弃了最后。那阵子感觉也是挺有意思，怎么喜欢一个演员是英国的，又喜欢一个演员还是英国的，后来听到一个笑话，英格兰，英gay兰…… <del>莫名callback有人锐评我觉得苏有朋和任泉长得可以“你喜欢的都是gay啊” 无端风评被害</del></p>\n<p><strong>成毅</strong> <a href=\"https://www.youtube.com/watch?v=OD9ZJ0zn-yI\">https://www.youtube.com/watch?v=OD9ZJ0zn-yI</a></p>\n<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/OD9ZJ0zn-yI?si=N_t8ElkJJufB4_H4?rel=0&amp;autoplay=1\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen></iframe>\n\n","categories":["似此星辰"],"tags":["TV Series"]},{"title":"河图的曲","url":"https://eustomaqua.github.io/2024/2024-12-11-annual-playlist/","content":"<link rel=\"stylesheet\" class=\"aplayer-secondary-style-marker\" href=\"/assets/css/APlayer.min.css\"><script src=\"/assets/js/APlayer.min.js\" class=\"aplayer-secondary-script-marker\"></script>\n        <div id=\"aplayer-BsewaUKU\" class=\"aplayer aplayer-tag-marker\" style=\"margin-bottom: 20px;\"></div>\n\t\t\t  <script>\n\t\t\t\t  var options = {\"narrow\":false,\"autoplay\":true,\"showlrc\":3,\"mode\":\"random\",\"mutex\":true,\"theme\":\"#e6d0b2\",\"preload\":\"metadata\",\"listmaxheight\":\"413px\",\"width\":\"50%\",\"music\":[{\"title\":\"茫茫\",\"author\":\"河图\",\"url\":\"/video/河图 _ 汐音社 - 茫茫.mp3\",\"pic\":\"https://y.gtimg.cn/music/photo_new/T002R300x300M000002lZ5G70LEBIM_1.jpg?max_age=2592000\",\"lrc\":\"/music/汐音社-茫茫.lrc\"},{\"title\":\"终不还\",\"author\":\"河图\",\"url\":\"/video/河图 - 终不还.mp3\",\"pic\":\"/images/2024-12/河图-终不还.webp\",\"lrc\":\"/music/河图-终不还.lrc\"},{\"title\":\"城春草木深\",\"author\":\"河图\",\"url\":\"/video/河图 - 城春草木深.mp3\",\"pic\":\"/images/2024-12/河图-城春草木深.webp\",\"lrc\":\"/music/河图-城春草木深.lrc\"},{\"title\":\"永定四十年\",\"author\":\"河图\",\"url\":\"/video/河图 - 永定四十年.mp3\",\"pic\":\"/images/2024-12/河图-永定四十年.webp\",\"lrc\":\"/music/河图-永定四十年.lrc\"},{\"title\":\"如花\",\"author\":\"河图\",\"url\":\"/video/河图 - 如花.mp3\",\"pic\":\"https://cdn-images.dzcdn.net/images/cover/ca804ebd6ef25d9b5a314cc63b9ba0b0/500x500-000000-80-0-0.jpg\",\"lrc\":\"/music/河图-如花.lrc\"},{\"title\":\"六耳\",\"author\":\"河图\",\"url\":\"/video/河图 - 六耳.mp3\",\"pic\":\"https://y.gtimg.cn/music/photo_new/T002R300x300M000002W2mBC3rOQ8Y_1.jpg?max_age=2592000\",\"lrc\":\"/music/河图-六耳.lrc\"},{\"title\":\"归程\",\"author\":\"齐栾\",\"url\":\"/video/齐栾 - 归程.mp3\",\"pic\":\"/images/2021-01/齐栾-归程.png\",\"lrc\":\"/music/齐栾-归程.lrc\"}]};\n\t\t\t\t  options.element = document.getElementById(\"aplayer-BsewaUKU\");\n\t\t\t\t  var ap = new APlayer(options);\n\t\t\t    window.aplayers || (window.aplayers = []);\n\t\t\t\t  window.aplayers.push(ap);\n\t\t\t  </script>\n\n<br>\n\n<!--\nhttps://www.kumeiwp.com/wj/25253/2022/03/04/6f3fe6511ffd8822b36949a5ae5aac84.mp3\n-->\n\n\n\n<h1 id=\"河图\"><a href=\"#河图\" class=\"headerlink\" title=\"河图\"></a>河图</h1><h2 id=\"传奇\"><a href=\"#传奇\" class=\"headerlink\" title=\"传奇\"></a>传奇</h2><details>\n<summary>如花\n  [<a href=\"https://open.spotify.com/track/7Ix5AF6GwSUXGD8huAgjvO\">Spotify</a>,\n  <a href=\"https://music.163.com/#/song?id=101079\">NetEase</a>]\n</summary>\n\n<p>作词 : Finale<br>作曲 : 河图<br>编曲 : 河图</p>\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br><span class=\"line\">39</span><br><span class=\"line\">40</span><br><span class=\"line\">41</span><br><span class=\"line\">42</span><br><span class=\"line\">43</span><br><span class=\"line\">44</span><br><span class=\"line\">45</span><br><span class=\"line\">46</span><br><span class=\"line\">47</span><br><span class=\"line\">48</span><br><span class=\"line\">49</span><br><span class=\"line\">50</span><br><span class=\"line\">51</span><br><span class=\"line\">52</span><br><span class=\"line\">53</span><br><span class=\"line\">54</span><br><span class=\"line\">55</span><br><span class=\"line\">56</span><br><span class=\"line\">57</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">他在夜里把灯点 四书五经读几遍</span><br><span class=\"line\">是她青梅竹马两小无猜守在一边</span><br><span class=\"line\">她在灯下把墨研 荆钗布裙一双眼</span><br><span class=\"line\">看他寒窗苦读十年誓要上得金殿</span><br><span class=\"line\"></span><br><span class=\"line\">送良人到渡口</span><br><span class=\"line\">她说一生也为你守候</span><br><span class=\"line\">他说等我金榜题名</span><br><span class=\"line\">定不辜负你温柔</span><br><span class=\"line\"></span><br><span class=\"line\">十八年守候 她站在小渡口</span><br><span class=\"line\">十八年温柔 他睡在明月楼</span><br><span class=\"line\"></span><br><span class=\"line\">那孤帆去悠悠</span><br><span class=\"line\">把她悲喜全都带走</span><br><span class=\"line\">千丝万缕堤上的柳</span><br><span class=\"line\">挽不住江水奔流</span><br><span class=\"line\"></span><br><span class=\"line\">看春花开又落</span><br><span class=\"line\">秋风吹着那夏月走</span><br><span class=\"line\">冬雪纷纷又是一年</span><br><span class=\"line\">她等到 人比黄花瘦</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">她在夜里把灯点 江阔云低望几遍</span><br><span class=\"line\">云里几声雁断西风吹散多少思念</span><br><span class=\"line\">想他灯下把墨研 一字千金是状元</span><br><span class=\"line\">等他衣锦还乡等过一年又是一年</span><br><span class=\"line\"></span><br><span class=\"line\">谁打马渡前过</span><br><span class=\"line\">回身唤取酒喝一口</span><br><span class=\"line\">低声问是谁家姑娘</span><br><span class=\"line\">如花似玉为谁留</span><br><span class=\"line\"></span><br><span class=\"line\">十八年守候 她站在小渡口</span><br><span class=\"line\">十八年温柔 他睡在明月楼</span><br><span class=\"line\"></span><br><span class=\"line\">那孤帆去悠悠</span><br><span class=\"line\">把她年华全都带走</span><br><span class=\"line\">千丝万缕堤上的柳</span><br><span class=\"line\">挽不住江水奔流</span><br><span class=\"line\"></span><br><span class=\"line\">看春花开又落</span><br><span class=\"line\">秋风吹着那夏月走</span><br><span class=\"line\">冬雪纷纷又是一年</span><br><span class=\"line\">她等到 雪漫了眉头</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">听醒木一声收</span><br><span class=\"line\">故事里她还在等候</span><br><span class=\"line\">说书人合扇说从头</span><br><span class=\"line\">谁低眼 泪湿了衣袖</span><br><span class=\"line\"></span><br><span class=\"line\">她走过堤上柳</span><br><span class=\"line\">夕阳西下的小渡口</span><br><span class=\"line\">风景还像旧时温柔</span><br><span class=\"line\">但江水 一去不回头</span><br></pre></td></tr></table></figure>\n</details>\n<details>\n<summary>永定四十年\n  [<a href=\"https://open.spotify.com/track/230FodxKsviHStkQdVEr9j\">Spotify</a>,\n  <a href=\"https://music.163.com/#/song?id=1915569928\">NetEase</a>]\n</summary>\n\n<p>作词: Finale<br>作曲: 河图<br>编曲: 河图<br>混音: 河图</p>\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br><span class=\"line\">39</span><br><span class=\"line\">40</span><br><span class=\"line\">41</span><br><span class=\"line\">42</span><br><span class=\"line\">43</span><br><span class=\"line\">44</span><br><span class=\"line\">45</span><br><span class=\"line\">46</span><br><span class=\"line\">47</span><br><span class=\"line\">48</span><br><span class=\"line\">49</span><br><span class=\"line\">50</span><br><span class=\"line\">51</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">立春之后 几场雨水清瘦</span><br><span class=\"line\">不着痕迹 脉脉氲透卷轴</span><br><span class=\"line\">楼外伞下何人广袖 身影寂寞 眉目温柔</span><br><span class=\"line\">远过天边 远不过日落江流</span><br><span class=\"line\"></span><br><span class=\"line\">白露之后 寒夜霜降烦忧</span><br><span class=\"line\">是心上秋 不是纸上闲愁</span><br><span class=\"line\">长街十里谁曾相问 红尘奔走 冷暖知否</span><br><span class=\"line\">零落此身 始知道天意无由</span><br><span class=\"line\"></span><br><span class=\"line\">不群则狂 俗世人笑我簪花带酒</span><br><span class=\"line\">于意云何 青衫旧我自侧帽风流</span><br><span class=\"line\">打马过闹市少年白首</span><br><span class=\"line\">人声之外明月左右 河汉浅浅 星辰清秀</span><br><span class=\"line\"></span><br><span class=\"line\">低眉抬手 送陈酿酣然一杯入口</span><br><span class=\"line\">青灯如豆 这半生爱怨嗔痴写就</span><br><span class=\"line\">戏本尽头是故园烟柳</span><br><span class=\"line\">信他世事年年如旧 好花常有 好梦长留</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">清明之后 温酒剑上浇透</span><br><span class=\"line\">道平生幻 一场大梦不休</span><br><span class=\"line\">白头断琴恨无知己 年华空负 锦衣貂裘</span><br><span class=\"line\">莫问去来 早踏遍一十四州</span><br><span class=\"line\"></span><br><span class=\"line\">甘苦自酬 坐对花瑟江秋</span><br><span class=\"line\">云别岫后 不知新尘几斗</span><br><span class=\"line\">画屏韶光暗暗的偷 好天良夜 伤心时候</span><br><span class=\"line\">悲欢同朽 人间何事惹淹留</span><br><span class=\"line\"></span><br><span class=\"line\">陈渡小雪 西风里摆下灞陵别酒</span><br><span class=\"line\">粗服乱头 浣纱女巧遇了万户侯</span><br><span class=\"line\">谁见翻云覆雨刀笔手</span><br><span class=\"line\">二十年写一段风流 美人尚小 英雄年幼</span><br><span class=\"line\"></span><br><span class=\"line\">挑灯照夜 恰无心翻乱曲三百首</span><br><span class=\"line\">几折传世 我读懂你留下的藏头</span><br><span class=\"line\">满城都唱遍青衫洗旧</span><br><span class=\"line\">冬至大雪白了明楼 无人祭你 在甲子后</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">陈渡小雪 西风里摆下灞陵别酒</span><br><span class=\"line\">粗服乱头 浣纱女巧遇了万户侯</span><br><span class=\"line\">谁见翻云覆雨刀笔手</span><br><span class=\"line\">二十年写一段风流 美人尚小 英雄年幼</span><br><span class=\"line\"></span><br><span class=\"line\">挑灯照夜 恰无心翻乱曲三百首</span><br><span class=\"line\">几折传世 我读懂你留下的藏头</span><br><span class=\"line\">满城都唱遍青衫洗旧</span><br><span class=\"line\">冬至大雪白了明楼 无人祭你 在甲子后</span><br></pre></td></tr></table></figure>\n</details>\n<details>\n<summary>金榜外·纸上尘埃\n  [<a href=\"https://5sing.kugou.com/yc/4053080.html\">5sing</a>,\n  <a href=\"https://y.qq.com/n/ryqq/songDetail/001dyoiE0eCdgK\">QQ Music</a>]\n</summary>\n\n<p>金榜外·纸上尘埃<br>作词：Finale<br>作曲：河图<br>编曲：陈鹏杰<br>吉他：李萌<br>琵琶：音若子兮<br>笛箫：笛呆子囚牛<br>混音&#x2F;和声：小吴太太<br>企划&#x2F;制作：汐音社</p>\n<p>新科放榜，几人欢喜笑颜，几人失意落寞。那些嘲者笑者讥者讽者，又有几个能预知未来，千百年后，一世的功名利禄都化作尘埃，又剩下谁留在了青史之上。<br>出品：汐音社</p>\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">平嘉十八年放榜的那个春天</span><br><span class=\"line\">日光正好 照耀了几户欢喜笑颜</span><br><span class=\"line\">锣鼓拥着车马喧沸城间</span><br><span class=\"line\">而多少闲人 安静站在落寞屋檐</span><br><span class=\"line\"></span><br><span class=\"line\">那日谁沉默着深埋所有诗篇</span><br><span class=\"line\">点燃茅屋 独坐看一夜火光青烟</span><br><span class=\"line\">细雨熄了余烬湿了眉眼</span><br><span class=\"line\">我今虽如此 也曾打马雨后明前</span><br><span class=\"line\"></span><br><span class=\"line\">几行雁 飞绝 那天空阴霾</span><br><span class=\"line\">半生书 长埋 这雪里松柏</span><br><span class=\"line\">四季如梭光阴哪管人间恨爱</span><br><span class=\"line\">等过候过盼过望过青春不再</span><br><span class=\"line\">春风意马蹄疾</span><br><span class=\"line\">无人问金榜外</span><br><span class=\"line\"></span><br><span class=\"line\">平嘉十八年告别的那个春天</span><br><span class=\"line\">城门之下 谁悄然步入细雨绵绵</span><br><span class=\"line\">白马渐行渐远渐去天边</span><br><span class=\"line\">愿风尘路上 栈道花深天河云浅</span><br><span class=\"line\"></span><br><span class=\"line\">多年后松柏倒下的那个春天</span><br><span class=\"line\">他们翻开 时光浸染的万语千言</span><br><span class=\"line\">诗句穿过岁月终于再见</span><br><span class=\"line\">谁曾以纸笔 肆意挥洒写下人间</span><br><span class=\"line\"></span><br><span class=\"line\">七言诗 百首 留千秋万代</span><br><span class=\"line\">荆棘花 不败 在荒野盛开</span><br><span class=\"line\">当时深情一字一句化作尘埃</span><br><span class=\"line\">嘲者笑者讥者讽者谁知未来</span><br><span class=\"line\">史册中我姓名</span><br><span class=\"line\">君不见金榜外</span><br></pre></td></tr></table></figure>\n</details>\n<details>\n<summary>千秋莫负\n  [<a href=\"https://5sing.kugou.com/yc/1824188.html\">5sing</a>,\n  <a href=\"https://music.163.com/#/song?id=27571860\">NetEase</a>]\n</summary>\n</details>\n<details>\n<summary>明明明月是前身\n  [<a href=\"https://music.163.com/#/song?id=2058674509\">NetEase</a>]\n</summary>\n\n<p>作词 : Finale<br>作曲 : 河图<br>编曲 : 河图<br>琵琶 : 杨柳音子<br>琵琶录音 : 李建衡<br>混音 : 小吴太太<br>和声 : 小吴太太<br>念白指导 : 小淅儿&#x2F;边婧婷&#x2F;刘千禧</p>\n<p>今天我看了一出叫做《明珠玉簪记》的戏。<br>你一定想知道，戏里讲了什么故事。</p>\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br><span class=\"line\">39</span><br><span class=\"line\">40</span><br><span class=\"line\">41</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">当风过高楼 当雨湿透谁衣袖</span><br><span class=\"line\">当日出巷口 停留的船再远游</span><br><span class=\"line\">别时才执手 谁是否问了是否</span><br><span class=\"line\"></span><br><span class=\"line\">想移星转斗 想逆溯光阴河流</span><br><span class=\"line\">想一醉解忧 不坠入梦不止休</span><br><span class=\"line\">我笑得温柔 一个人从春到秋</span><br><span class=\"line\"></span><br><span class=\"line\">纸伞下明珠玉簪头 送一瞥惊鸿流连久</span><br><span class=\"line\">人间喜与愁 无可奈何花 谁望秋</span><br><span class=\"line\">烟波里绿袖红酥手 拥一段残梦千年后</span><br><span class=\"line\">长街夜如昼 似曾相识燕 我回眸</span><br><span class=\"line\"></span><br><span class=\"line\">定场中谁人衣锦绣 唱本心难求</span><br><span class=\"line\">一拜长别千岁忧 天自永寿 我自白头</span><br><span class=\"line\">此身是万里不系舟 何幸赠红豆</span><br><span class=\"line\">忽见天长地久 因来缘去 无计相留</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">【念白】</span><br><span class=\"line\">邂逅花有重开日，隔世人无再会时。</span><br><span class=\"line\">月明林下寄旧诗，水佩风裳知不知？</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">那公子银鞍金错刀 向软红十丈走一遭</span><br><span class=\"line\">年月日潦草 春夏冬无聊 消年少</span><br><span class=\"line\">那小姐宫绦紫竹箫 奏一曲后世成绝调</span><br><span class=\"line\">陌路始知道 心事忽如潮 月已高</span><br><span class=\"line\"></span><br><span class=\"line\">恨誓言有白头偕老 而离合难料</span><br><span class=\"line\">百转千回魂梦绕 城生春草 人去远道</span><br><span class=\"line\">恨传说有天荒地老 望断望不到</span><br><span class=\"line\">寻遍山河人间 光阴渺渺 长路迢迢</span><br><span class=\"line\"></span><br><span class=\"line\">那一世骄傲 檀板中归于寂寥</span><br><span class=\"line\">谁心如霜雪 曾有明月来相照</span><br><span class=\"line\">他与她姓名 是你我往事前朝</span><br><span class=\"line\"></span><br><span class=\"line\">这一世顽疾 到头来并无解药</span><br><span class=\"line\">若潜夜入梦 皆是谁眉梢眼角</span><br><span class=\"line\">而台上唱词 正唱到天荒地老</span><br></pre></td></tr></table></figure>\n</details>\n\n\n<h2 id=\"西游\"><a href=\"#西游\" class=\"headerlink\" title=\"西游\"></a>西游</h2><details>\n<summary>六耳 \n  [<a href=\"https://5sing.kugou.com/yc/4149536.html\">5sing</a>,\n  <a href=\"https://music.163.com/#/song?id=1444687632\">NetEase</a>,\n  <a href=\"https://y.qq.com/n/ryqq/songDetail/003FJ0Vq22fAYu\">QQ Music</a>]\n</summary>\n\n<p>词: 狐不举<br>别的: 河图</p>\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br><span class=\"line\">39</span><br><span class=\"line\">40</span><br><span class=\"line\">41</span><br><span class=\"line\">42</span><br><span class=\"line\">43</span><br><span class=\"line\">44</span><br><span class=\"line\">45</span><br><span class=\"line\">46</span><br><span class=\"line\">47</span><br><span class=\"line\">48</span><br><span class=\"line\">49</span><br><span class=\"line\">50</span><br><span class=\"line\">51</span><br><span class=\"line\">52</span><br><span class=\"line\">53</span><br><span class=\"line\">54</span><br><span class=\"line\">55</span><br><span class=\"line\">56</span><br><span class=\"line\">57</span><br><span class=\"line\">58</span><br><span class=\"line\">59</span><br><span class=\"line\">60</span><br><span class=\"line\">61</span><br><span class=\"line\">62</span><br><span class=\"line\">63</span><br><span class=\"line\">64</span><br><span class=\"line\">65</span><br><span class=\"line\">66</span><br><span class=\"line\">67</span><br><span class=\"line\">68</span><br><span class=\"line\">69</span><br><span class=\"line\">70</span><br><span class=\"line\">71</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">佛说阿弥陀佛 我说自由由我  </span><br><span class=\"line\">睁眼见天高地阔 第一步往哪里落  </span><br><span class=\"line\">佛说立地成佛 我说不够快活  </span><br><span class=\"line\">抬头望宝相煌煌 先容我再犯次错</span><br><span class=\"line\"></span><br><span class=\"line\">到底是踏上征途还是挣条出路  </span><br><span class=\"line\">故事里杀生罪无可恕  </span><br><span class=\"line\">杀妖七级浮屠  </span><br><span class=\"line\">有谁会在意棒下尘土  </span><br><span class=\"line\">也有故事之初  </span><br><span class=\"line\">我的出现当然在情理之中毫不突兀</span><br><span class=\"line\"></span><br><span class=\"line\">是不是太有态度就容易被当作怪物  </span><br><span class=\"line\">是不是锋芒太露反而会照亮孤独  </span><br><span class=\"line\">是不是皈依佛祖也皈依了麻木  </span><br><span class=\"line\">是不是我说这些又像个无知狂徒</span><br><span class=\"line\"></span><br><span class=\"line\">总需要能完美地  </span><br><span class=\"line\">扮成反派的那一根反骨  </span><br><span class=\"line\">点缀的戏份绝对不至于喧宾夺主  </span><br><span class=\"line\">配合着善恶描述  </span><br><span class=\"line\">表演着因果赢输  </span><br><span class=\"line\">反正我真做不到他们说的顿悟</span><br><span class=\"line\"></span><br><span class=\"line\">阿弥陀佛  听那章回 铁棒一抡等待好戏开幕  </span><br><span class=\"line\">阿弥陀佛  听那紧箍 疼得死去活来 念不出  </span><br><span class=\"line\">阿弥陀佛  听那法王 宝器神镜分明照不出  </span><br><span class=\"line\">阿弥陀佛  听那菩萨 莲花指捻慧眼瞧也瞧不出</span><br><span class=\"line\"></span><br><span class=\"line\">阿弥陀佛  我说这法 怎教诸位善尊识得时务  </span><br><span class=\"line\">阿弥陀佛  我说这法 无非灰飞烟灭一棍伏诛  </span><br><span class=\"line\">阿弥陀佛  我说这法 不传六耳偏要聆听万物  </span><br><span class=\"line\">阿弥陀佛  我说这法 问过你有没有一丝嫉妒</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">我很奇怪人们永远不爱英雄屈服  </span><br><span class=\"line\">但换个方式讲述又能被轻易说服  </span><br><span class=\"line\">而我是八十一难中  </span><br><span class=\"line\">耍弄的奸计最狠毒  </span><br><span class=\"line\">狂妄得心无旁骛  </span><br><span class=\"line\">冥顽得一如当初</span><br><span class=\"line\"></span><br><span class=\"line\">或许你走很多弯路只是不懂驻足  </span><br><span class=\"line\">或许你赚很多钱的初衷只是好赌  </span><br><span class=\"line\">或许你挤很多笑容  </span><br><span class=\"line\">只是不想一个人哭  </span><br><span class=\"line\">或许你攀交许多人  </span><br><span class=\"line\">只是为了接近幸福</span><br><span class=\"line\"></span><br><span class=\"line\">就好像只要你  </span><br><span class=\"line\">顺理成章地经历千辛万苦  </span><br><span class=\"line\">就能豁然开悟 就能脱胎换骨  </span><br><span class=\"line\">我披上你脱下的胎  </span><br><span class=\"line\">接上你换掉的骨  </span><br><span class=\"line\">你就真实地长成了现在的面目</span><br><span class=\"line\"></span><br><span class=\"line\">阿弥陀佛  根据命数 我不能占据太多篇幅  </span><br><span class=\"line\">阿弥陀佛  毕竟佛祖 太忙三界事都要一一照顾  </span><br><span class=\"line\">阿弥陀佛  听那地府 又翻过千万页续写生死簿  </span><br><span class=\"line\">阿弥陀佛  听那天宫 又设起佳宴重燃丹炉</span><br><span class=\"line\"></span><br><span class=\"line\">阿弥陀佛  听我狂呼 有众生苦难等待着普渡  </span><br><span class=\"line\">阿弥陀佛  听我狂呼 为何止息后又一切如故  </span><br><span class=\"line\">阿弥陀佛  听我狂呼 终会降惊雷于无声之处  </span><br><span class=\"line\">阿弥陀佛  听我狂呼 这一生无需躬身只认横竖</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">佛说阿弥陀佛 我说自由由我  </span><br><span class=\"line\">睁眼见天高地阔 第一步往哪里落  </span><br><span class=\"line\">佛说立地成佛 我说不够快活  </span><br><span class=\"line\">抬头望宝相煌煌 先容我再犯次错</span><br></pre></td></tr></table></figure>\n</details>\n<details>\n<summary>沙悟净\n  [<a href=\"https://5sing.kugou.com/yc/3186882.html\">5sing</a>,\n  <a href=\"https://music.163.com/#/song?id=1915558494\">NetEase</a>,\n  <a href=\"https://y.qq.com/n/ryqq/songDetail/003rB4jp4bccg1\">QQ Music</a>]\n</summary>\n\n<p>词: 狐不举<br>曲: 河图<br>编曲: 陈鹏杰</p>\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br><span class=\"line\">39</span><br><span class=\"line\">40</span><br><span class=\"line\">41</span><br><span class=\"line\">42</span><br><span class=\"line\">43</span><br><span class=\"line\">44</span><br><span class=\"line\">45</span><br><span class=\"line\">46</span><br><span class=\"line\">47</span><br><span class=\"line\">48</span><br><span class=\"line\">49</span><br><span class=\"line\">50</span><br><span class=\"line\">51</span><br><span class=\"line\">52</span><br><span class=\"line\">53</span><br><span class=\"line\">54</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">也许的确更有为妖天分  </span><br><span class=\"line\">流沙浸透淤泥自在身  </span><br><span class=\"line\">等待满怀故事的过路人  </span><br><span class=\"line\">倾听前不如先倾吞</span><br><span class=\"line\"></span><br><span class=\"line\">或者偶尔怀恋当时名分  </span><br><span class=\"line\">琉璃一盏剔透握不稳  </span><br><span class=\"line\">此生尽在千丈远外晨昏  </span><br><span class=\"line\">隔着那扇天门</span><br><span class=\"line\"></span><br><span class=\"line\">人间有不停息的春至秋分  </span><br><span class=\"line\">时间的心思单纯而面目可憎</span><br><span class=\"line\"></span><br><span class=\"line\">好似曾为谁披甲踏云上阵  </span><br><span class=\"line\">可惜没能叱咤乾坤  </span><br><span class=\"line\">丁点成就零星传闻  </span><br><span class=\"line\">我也被称作天神</span><br><span class=\"line\"></span><br><span class=\"line\">英雄百种定格一瞬  </span><br><span class=\"line\">尽褪凡俗落地生根  </span><br><span class=\"line\">长夜又密雨沙河阻新人</span><br><span class=\"line\"></span><br><span class=\"line\">如今突然遭遇修行缘分  </span><br><span class=\"line\">才知我那些前尘旧恨  </span><br><span class=\"line\">在妖中竟也算乏善可陈  </span><br><span class=\"line\">谁都经历苦海浮沉</span><br><span class=\"line\"></span><br><span class=\"line\">终于努力学会承担本分  </span><br><span class=\"line\">可弟子有惑依旧愚钝  </span><br><span class=\"line\">当思念某一片刻的眼神  </span><br><span class=\"line\">该诵哪段经文</span><br><span class=\"line\"></span><br><span class=\"line\">师父用最熟悉的宽容口吻  </span><br><span class=\"line\">复述着如是我闻我却仍疑问</span><br><span class=\"line\"></span><br><span class=\"line\">八十一难中是否包括爱人  </span><br><span class=\"line\">悟境泛过温柔波纹  </span><br><span class=\"line\">想是故土沙粒遗痕  </span><br><span class=\"line\">皈依前竟已发生</span><br><span class=\"line\"></span><br><span class=\"line\">可曾见谁斩断慧根  </span><br><span class=\"line\">自甘堕入滚滚红尘  </span><br><span class=\"line\">千山万水后雨夜期故人</span><br><span class=\"line\"></span><br><span class=\"line\">佛祖教化我应渡千万世人  </span><br><span class=\"line\">允我先杀千万世人  </span><br><span class=\"line\">犯遍杀戒袈裟加身  </span><br><span class=\"line\">怎能不忏悔诚恳</span><br><span class=\"line\"></span><br><span class=\"line\">恍惚梦回列云甲阵  </span><br><span class=\"line\">转眼跪坐音聆言遵  </span><br><span class=\"line\">当洗尽流沙才可披金身</span><br><span class=\"line\"></span><br><span class=\"line\">仿佛读懂了最慈悲眼神</span><br></pre></td></tr></table></figure>\n</details>\n<details>\n<summary>第九戒\n  [<a href=\"https://5sing.kugou.com/yc/4173224.html\">5sing</a>,\n  <a href=\"https://music.163.com/#/song?id=1459430186\">NetEase</a>,\n  <a href=\"https://y.qq.com/n/ryqq/songDetail/001D3Ikm0jTmTh\">QQ Music</a>]\n</summary>\n\n<p>作词：狐不举<br>作曲：河图<br>编曲&#x2F;吉他：李萌<br>贝斯：卫东<br>混音&#x2F;和声：小吴太太</p>\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br><span class=\"line\">39</span><br><span class=\"line\">40</span><br><span class=\"line\">41</span><br><span class=\"line\">42</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">你听过看过笑过的那些丑态</span><br><span class=\"line\">像在调侃当年那位帅才</span><br><span class=\"line\">英雄会变成英雄身边的无赖</span><br><span class=\"line\">坦白无伤大雅的蠢和坏</span><br><span class=\"line\"></span><br><span class=\"line\">所以谁都不必表现一丝意外</span><br><span class=\"line\">好吃懒做都是命里安排</span><br><span class=\"line\">幸与不幸难免勾连应不应该</span><br><span class=\"line\">戒字太难最后认了活该</span><br><span class=\"line\"></span><br><span class=\"line\">自在庸碌的才是大多数</span><br><span class=\"line\">我不过也是贪财好色又酒饱饭足</span><br><span class=\"line\">醉生梦死的才是大多数</span><br><span class=\"line\">我不过也是高床坐卧又乱香迷目</span><br><span class=\"line\">恶里升天的才是大多数</span><br><span class=\"line\">我不过也是好赖不分又习惯认输</span><br><span class=\"line\">八戒未戒的才是大多数</span><br><span class=\"line\">我不过也是稀里糊涂又续添辛苦</span><br><span class=\"line\"></span><br><span class=\"line\">这一辈子就像做了一场买卖</span><br><span class=\"line\">卖了时间买了些不明白</span><br><span class=\"line\">不明白地明白人间太少更改</span><br><span class=\"line\">不明白地明白世事常态</span><br><span class=\"line\"></span><br><span class=\"line\">顺其自然做个最滑头的蠢材</span><br><span class=\"line\">背不动行囊打不了妖怪</span><br><span class=\"line\">捞这千古名声经典憨痴丰采</span><br><span class=\"line\">戒字简单失败笑后重来</span><br><span class=\"line\"></span><br><span class=\"line\">欲壑难填的才是大多数</span><br><span class=\"line\">我不过也是凡人那般的不知餍足</span><br><span class=\"line\">不得圆满的才是大多数</span><br><span class=\"line\">我不过也是这俗世中的不能免俗</span><br><span class=\"line\">爱恨鲜活的才是大多数</span><br><span class=\"line\">我不过也是话本流言的不幸辜负</span><br><span class=\"line\">悲欢离合的才是大多数</span><br><span class=\"line\">我不过也是装作戒了的靡不有初</span><br><span class=\"line\"></span><br><span class=\"line\">这一辈子就像做了一场买卖</span><br><span class=\"line\">卖了所有时间买了些不明白</span><br><span class=\"line\">不明白地明白人世无改</span><br><span class=\"line\">西去泊云端零落人间外</span><br></pre></td></tr></table></figure>\n</details>\n<details>\n<summary>行至灵山\n  [<a href=\"https://music.163.com/#/song?id=2666533319\">NetEase</a>]\n</summary>\n</details>\n<details>\n<summary>失空斩\n  [<a href=\"https://5sing.kugou.com/yc/3438536.html\">5sing</a>,\n  <a href=\"https://music.163.com/#/song?id=508610293\">NetEase</a>,\n  <a href=\"https://y.qq.com/n/ryqq/songDetail/0016TNad2O8Vea\">QQ Music</a>]\n</summary>\n\n<p>作词：择荇<br>作曲&#x2F;编曲&#x2F;演唱：河图</p>\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br><span class=\"line\">39</span><br><span class=\"line\">40</span><br><span class=\"line\">41</span><br><span class=\"line\">42</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">鼓声烛影里登台的长髯老生  </span><br><span class=\"line\">脸谱后有种悲天悯人的忧愤  </span><br><span class=\"line\">那个鞠躬尽瘁的托孤之臣  </span><br><span class=\"line\">原本该料事如神 谋定乾坤</span><br><span class=\"line\"></span><br><span class=\"line\">凭一张瑶琴解围城之困  </span><br><span class=\"line\">赢得这满座拊掌如雷震  </span><br><span class=\"line\">想来智极近妖的不败化身  </span><br><span class=\"line\">怎会回天乏术大乱方寸</span><br><span class=\"line\"></span><br><span class=\"line\">若失去战无不胜的半世纵横  </span><br><span class=\"line\">空空如也赌谁会抱憾终生  </span><br><span class=\"line\">敢不敢斩断最后一点点温存  </span><br><span class=\"line\">来忘却我本是卧龙岗散淡的人</span><br><span class=\"line\"></span><br><span class=\"line\">若失去未卜先知的通天之能  </span><br><span class=\"line\">空空如也于天地孑然一身  </span><br><span class=\"line\">敢不敢斩断最后一点点遗恨  </span><br><span class=\"line\">来纪念我本是卧龙岗散淡的人</span><br><span class=\"line\"></span><br><span class=\"line\">忆昔当年居卧龙 万里乾坤掌握中  </span><br><span class=\"line\">扫尽狼烟归汉统 人曰男儿大英雄</span><br><span class=\"line\"></span><br><span class=\"line\">坊间巷陌中的剧目话本  </span><br><span class=\"line\">流传着为人乐道的尾声  </span><br><span class=\"line\">主帅掷下令旗时挥泪不忍  </span><br><span class=\"line\">战败者首级高挂辕门</span><br><span class=\"line\"></span><br><span class=\"line\">若失去战无不胜的半世纵横  </span><br><span class=\"line\">空空如也赌谁会抱憾终生  </span><br><span class=\"line\">敢不敢斩断最后一点点温存  </span><br><span class=\"line\">来忘却我本是卧龙岗散淡的人</span><br><span class=\"line\"></span><br><span class=\"line\">若失去未卜先知的通天之能  </span><br><span class=\"line\">空空如也于天地孑然一身  </span><br><span class=\"line\">敢不敢斩断最后一点点遗恨  </span><br><span class=\"line\">来纪念我本是卧龙岗散淡的人</span><br><span class=\"line\"></span><br><span class=\"line\">鼓声烛影里登台的长髯老生  </span><br><span class=\"line\">脸谱后有种悲天悯人的忧愤  </span><br><span class=\"line\">那个鞠躬尽瘁的托孤之臣  </span><br><span class=\"line\">原本该料事如神 谋定乾坤</span><br></pre></td></tr></table></figure>\n</details>\n\n\n<h2 id=\"起战\"><a href=\"#起战\" class=\"headerlink\" title=\"起战\"></a>起战</h2><details>\n<summary>茫茫 \n  [<a href=\"http://5sing.kugou.com/yc/3877547.html\" target=\"_blank\">5sing</a>,\n  <a href=\"https://music.163.com/#/song?id=2154942283\">NetEase</a>,\n  <a href=\"https://y.qq.com/n/ryqq/songDetail/001KoKy811BywQ\">QQ Music</a>]\n</summary>\n\n<p>河图&#x2F;汐音社</p>\n<p>我曾见过你，在寥寥数笔的史书里，也在真假难辨的梦里</p>\n<p>词：顾念之<br>曲：河图<br>编曲：王景<br>吉他&#x2F;萧：安念lanny<br>混音：小吴太太<br>企划&#x2F;制作：汐音社</p>\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br><span class=\"line\">39</span><br><span class=\"line\">40</span><br><span class=\"line\">41</span><br><span class=\"line\">42</span><br><span class=\"line\">43</span><br><span class=\"line\">44</span><br><span class=\"line\">45</span><br><span class=\"line\">46</span><br><span class=\"line\">47</span><br><span class=\"line\">48</span><br><span class=\"line\">49</span><br><span class=\"line\">50</span><br><span class=\"line\">51</span><br><span class=\"line\">52</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">我借墨行梦 远赴他方</span><br><span class=\"line\">曾见烽火侧弓弦满张</span><br><span class=\"line\">朔风击鼓闻作破阵曲</span><br><span class=\"line\">雨落鳞甲筹为千军酿</span><br><span class=\"line\"></span><br><span class=\"line\">共十年逐沙 谈兵玉帐</span><br><span class=\"line\">一夕明月悄然临西窗</span><br><span class=\"line\">梦里不知身是远来客</span><br><span class=\"line\">梦尽头作别初初天光</span><br><span class=\"line\"></span><br><span class=\"line\">仿佛坠落前 我与谁隔世相望</span><br><span class=\"line\">徘徊梦醒 留一笔为故人思量</span><br><span class=\"line\">虚实间七情百相</span><br><span class=\"line\"></span><br><span class=\"line\">我早知人世 惯见的聚散无常</span><br><span class=\"line\">今朝有酒 对饮者共醉一场</span><br><span class=\"line\">落地为亲 何必问来路去向</span><br><span class=\"line\">若有缘再携酒造访</span><br><span class=\"line\"></span><br><span class=\"line\">我也知离别 早写在相遇前章</span><br><span class=\"line\">窃来一晌 是两生意外错航</span><br><span class=\"line\">时光并去 余松涛莽莽苍苍</span><br><span class=\"line\">斜晖落日 今时雁不见古城墙</span><br><span class=\"line\"></span><br><span class=\"line\">此迢迢万里 越山涉江</span><br><span class=\"line\">旁人怎知我寻归觅往</span><br><span class=\"line\">兴起时两三走板荒腔</span><br><span class=\"line\">可是你借我之口弹唱</span><br><span class=\"line\"></span><br><span class=\"line\">谁为我和歌 归来处长天茫茫</span><br><span class=\"line\">同诗同酒 千秋云月何曾两乡</span><br><span class=\"line\">史册间往来幢幢</span><br><span class=\"line\"></span><br><span class=\"line\">我早知人世 惯见的聚散无常</span><br><span class=\"line\">今朝有酒 对饮者共醉一场</span><br><span class=\"line\">落地为亲 何必问来路去向</span><br><span class=\"line\">若有缘再携酒造访</span><br><span class=\"line\"></span><br><span class=\"line\">我也知离别 早写在相遇前章</span><br><span class=\"line\">窃来一晌 是两生意外错航</span><br><span class=\"line\">时光并去 余松涛莽莽苍苍</span><br><span class=\"line\">斜晖落日 今时雁不见古城墙</span><br><span class=\"line\"></span><br><span class=\"line\">我也知此行 无非是梦过黄粱</span><br><span class=\"line\">后身他生 当局者当思当忘</span><br><span class=\"line\">经年相逢 我倾杯还你一觞</span><br><span class=\"line\">留证共你热血激荡</span><br><span class=\"line\"></span><br><span class=\"line\">或许是年少 一时的痴人妄想</span><br><span class=\"line\">只言片语 任他人嘲作荒唐</span><br><span class=\"line\">循迹重游 再抚去塞外飞霜</span><br><span class=\"line\">碑铭之后 还记得你本来模样</span><br></pre></td></tr></table></figure>\n</details>\n<details>\n<summary>终不还\n  [<a href=\"https://music.163.com/#/song?id=1982632526\">NetEase</a>]\n</summary>\n\n<p>作词：择荇<br>作曲&#x2F;编曲：河图<br>混音&#x2F;和声：小吴太太<br>联合策划：酷狗音乐国风新语</p>\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br><span class=\"line\">39</span><br><span class=\"line\">40</span><br><span class=\"line\">41</span><br><span class=\"line\">42</span><br><span class=\"line\">43</span><br><span class=\"line\">44</span><br><span class=\"line\">45</span><br><span class=\"line\">46</span><br><span class=\"line\">47</span><br><span class=\"line\">48</span><br><span class=\"line\">49</span><br><span class=\"line\">50</span><br><span class=\"line\">51</span><br><span class=\"line\">52</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">我曾奔赴远山林莽间</span><br><span class=\"line\">焚风冻土的荒原</span><br><span class=\"line\">流矢如星 热血如焰</span><br><span class=\"line\">饮冰卧雪如等闲</span><br><span class=\"line\"></span><br><span class=\"line\">我曾点燃长河瀚海边</span><br><span class=\"line\">喷薄云上的狼烟</span><br><span class=\"line\">横流沧海 逆旅而前</span><br><span class=\"line\">揽月移山填深渊</span><br><span class=\"line\"></span><br><span class=\"line\">幸好我没错过</span><br><span class=\"line\">遍地英雄的传说</span><br><span class=\"line\">谁并辔漂泊 又告别我</span><br><span class=\"line\">长眠在 岁月佚名的山坡</span><br><span class=\"line\">芳菲不歇地开落</span><br><span class=\"line\"></span><br><span class=\"line\">今夜就射落天狼獠牙间的星斗</span><br><span class=\"line\">我簪花问酒 哪肯臣服于春秋</span><br><span class=\"line\">月光啊 别急着渡过万古江流</span><br><span class=\"line\">今夜趁天凉 登顶云宇中的层楼</span><br><span class=\"line\">青山皆不朽 我一人如何看够</span><br><span class=\"line\">长风啊 别急着翻越劲草荒丘</span><br><span class=\"line\"></span><br><span class=\"line\">幸好我不寂寞</span><br><span class=\"line\">遍地燎原的烈火</span><br><span class=\"line\">谁扬鞭而过 曾许诺我</span><br><span class=\"line\">浪迹到老之将死才洒脱</span><br><span class=\"line\">天涯何处不辽阔</span><br><span class=\"line\"></span><br><span class=\"line\">今夜就射落天狼獠牙间的星斗</span><br><span class=\"line\">我簪花问酒 哪肯臣服于春秋</span><br><span class=\"line\">月光啊 别急着渡过万古江流</span><br><span class=\"line\">今夜趁天凉 登顶云宇中的层楼</span><br><span class=\"line\">青山皆不朽 我一人如何看够</span><br><span class=\"line\">长风啊 别急着翻越劲草荒丘</span><br><span class=\"line\"></span><br><span class=\"line\">今夜就射落天狼獠牙间的星斗</span><br><span class=\"line\">我簪花问酒 哪肯臣服于春秋</span><br><span class=\"line\">月光啊 先照亮人间万象风流</span><br><span class=\"line\">今夜趁天凉 登顶云宇中的层楼</span><br><span class=\"line\">青山皆不朽 我一人如何看够</span><br><span class=\"line\">长风啊 先吹彻衣冠漫卷青丘</span><br><span class=\"line\"></span><br><span class=\"line\">我曾奔赴远山林莽间</span><br><span class=\"line\">焚风冻土的荒原</span><br><span class=\"line\">流矢如星 热血如焰</span><br><span class=\"line\">饮冰卧雪如等闲</span><br><span class=\"line\"></span><br><span class=\"line\">我曾点燃长河瀚海边</span><br><span class=\"line\">喷薄云上的狼烟</span><br><span class=\"line\">横流沧海 逆旅而前</span><br><span class=\"line\">揽月移山填深渊</span><br></pre></td></tr></table></figure>\n</details>\n<details>\n<summary>城春草木深\n  [<a href=\"https://www.youtube.com/watch?v=nSmNrufsCRc\">YouTube</a>,\n  <a href=\"https://open.spotify.com/track/4VhATUg3MkQrw2CE5nq1P7\">Spotify</a>,\n  <a href=\"https://music.163.com/#/song?id=1928686184\">NetEase</a>]\n</summary>\n\n<p>作词: 狐离<br>作曲: 河图<br>编曲: 河图<br>和声&#x2F;混音：小吴太太<br>笛箫：囚牛<br>联合策划：国风新语</p>\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">故城春深 海棠花摇动影纷纷</span><br><span class=\"line\">朱门半掩 阶下零落苔痕</span><br><span class=\"line\">细数前尘 听更漏一声又一声</span><br><span class=\"line\">只恐夜深花睡去了终不闻</span><br><span class=\"line\"></span><br><span class=\"line\">独饮风月冷 俗世里浮沉 半卷旧诗文</span><br><span class=\"line\">解得无限恨 谁来解这荒谬浮生</span><br><span class=\"line\"></span><br><span class=\"line\">再追问 谁作断肠声</span><br><span class=\"line\">陈酒余温不足慰霜雪平生</span><br><span class=\"line\">走过这一生 聚散皆不由人</span><br><span class=\"line\">当年繁花极盛的幻景一瞬</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">风吹满一身 陌上花与尘 旧梦里浮生</span><br><span class=\"line\">借我一缕魂 偷生重演片刻茂盛</span><br><span class=\"line\"></span><br><span class=\"line\">再久等 下一年春分</span><br><span class=\"line\">这梦太沉等不及看客回神</span><br><span class=\"line\">不曾识红尘 红尘已别故人</span><br><span class=\"line\">待夜深山河入梦黄粱一枕</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">故城春深 海棠花摇动影纷纷</span><br><span class=\"line\">朱门半掩 阶下零落苔痕</span><br><span class=\"line\">细数前尘 听更漏一声又一声</span><br><span class=\"line\">只恐夜深花睡去了终不闻</span><br></pre></td></tr></table></figure>\n</details>\n<details>\n<summary>大雪寄家书\n  [<a href=\"https://5sing.kugou.com/yc/4247674.html\">5sing</a>,\n  <a href=\"https://music.163.com/#/song?id=1841921621\">NetEase</a>]\n</summary>\n\n<p>刘氏的儿子去北岭从军，说好会写信回家。开始信三月一封，第三年后间隔越来越长，内容也颠三倒四，第五年就再没有信来。这年冬天，北岭传来消息，儿子所在的那支军队打了场历时三年的战，最终无人生还。刘氏伏地大哭。她不识字，但她认得信里的“娘”字，儿子后来的信里，“娘”字都写得不尽相同。</p>\n<p>“等北岭下了第一场雪，我们就回家。”</p>\n<p>词：Finale<br>埙：笛呆子囚牛<br>别的：河图</p>\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">它走了三千里路，穿越过昼夜边界，从大雪走到小雪</span><br><span class=\"line\">驿站里寻常交接，信封有干涸的血</span><br><span class=\"line\">它来自哪座城池，要去向哪个誓约，带给谁悲伤或喜悦</span><br><span class=\"line\">白发人等候多年，等一场迟来的生死离别</span><br><span class=\"line\"></span><br><span class=\"line\">西风烈，谁望西风吹冷城阙</span><br><span class=\"line\">谁倾听羌笛幽咽，谁守着一座城期待落雪</span><br><span class=\"line\"></span><br><span class=\"line\">羌笛咽，谁百战归，谁把家书续写</span><br><span class=\"line\">谁问故乡月，几回圆缺</span><br><span class=\"line\">纸上泪下也，寒光照甲，世间谁心如铁</span><br><span class=\"line\">谁纵胆怯，也含笑告别</span><br><span class=\"line\"></span><br><span class=\"line\">它听过人间哭笑，看战火开始终结，从小雪走到大雪</span><br><span class=\"line\">传递间信封残缺，所幸留墨迹真切</span><br><span class=\"line\">它躺在昏黄灯下，承载她眼神殷切，无论以谎言或慰藉</span><br><span class=\"line\">风雪中消息凛冽，她记得那个字长短横斜</span><br><span class=\"line\"></span><br><span class=\"line\">西风烈，谁念西风吹冷城阙</span><br><span class=\"line\">夜来有羌笛幽咽，那座城孤独地迎接落雪</span><br><span class=\"line\"></span><br><span class=\"line\">羌笛咽，千里未竭，应是乡愁难解</span><br><span class=\"line\">可怜故乡月，几回圆缺</span><br><span class=\"line\">白发泪下也，红蜡成灰，世间原来易别</span><br><span class=\"line\">今夜有雪，似归家时节</span><br></pre></td></tr></table></figure>\n</details>\n\n\n\n<h2 id=\"问情\"><a href=\"#问情\" class=\"headerlink\" title=\"问情\"></a>问情</h2><details>\n<summary>送给你的花\n  [<a href=\"https://www.youtube.com/watch?v=yxVniXaleBs\">YouTube</a>,\n  <a href=\"https://music.163.com/#/song?id=3319292888\">NetEase</a>,\n  <a href=\"https://www.bilibili.com/video/BV143ScBBERX\">bilibili</a>,\n  <a href=\"https://www.bilibili.com/video/BV1mRSvBKEYX\">bilibili曲谱</a>]\n</summary>\n\n<p>词: Finale<br>曲: 河图<br>编曲: 河图<br>吉他: 河图<br>和声: 小吴太太<br>混音: 河图&#x2F;小吴太太</p>\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">我曾经以为 生在世间的意义</span><br><span class=\"line\">是风中飞尘 来去水面一朵涟漪</span><br><span class=\"line\">说过一生太短 没几次朝夕</span><br><span class=\"line\">却为看花开 追寻着不远万里</span><br><span class=\"line\">看它漫山遍野 火一样燃烧到天际</span><br><span class=\"line\"></span><br><span class=\"line\">我曾经以为 人们相遇的意义</span><br><span class=\"line\">是水上浮萍 终年孤独偶然相依</span><br><span class=\"line\">说过擦肩太快 知交来不及</span><br><span class=\"line\">却为看云起 同行到忘了归期</span><br><span class=\"line\">看它从无到有 像我和世界的联系</span><br><span class=\"line\">可是花怎会落啊 明明还盛开雨过一夜凋零</span><br><span class=\"line\">可是云怎会散啊 明明还并肩风过只留我独行</span><br><span class=\"line\">可记忆怎会苏醒 遥不可及的月光也曾照亮过我的眼睛</span><br><span class=\"line\">如果一切重来 我仍会喊出你姓名</span><br><span class=\"line\"></span><br><span class=\"line\">我曾经以为 一人独行的意义</span><br><span class=\"line\">是再无牵挂 终此一生不遇别离</span><br><span class=\"line\">后来我已走遍 这茫茫天地</span><br><span class=\"line\">也开始习惯 安静地看着潮汐</span><br><span class=\"line\">看它来了去了 抹平了所有的痕迹</span><br><span class=\"line\">可是花怎会落啊 明明还盛开雨过一夜凋零</span><br><span class=\"line\">可是云怎会散啊 明明还并肩风过只留我独行</span><br><span class=\"line\">可记忆怎会苏醒 遥不可及的月光也曾照亮过我的眼睛</span><br><span class=\"line\">如果一切重来 我仍会喊出你姓名</span><br><span class=\"line\"></span><br><span class=\"line\">可是花怎会落啊</span><br><span class=\"line\">明明还盛开 雨过一夜凋零</span><br><span class=\"line\">可是云怎会散啊</span><br><span class=\"line\">明明还并肩 风过只留我独行</span><br><span class=\"line\">可记忆怎会苏醒</span><br><span class=\"line\">遥不可及的月光 也曾照亮过我的眼睛</span><br><span class=\"line\">如果一切重来</span><br><span class=\"line\">我仍会喊出你姓名</span><br></pre></td></tr></table></figure>\n</details>\n\n<details>\n<summary>蝉不知雪\n  [<a href=\"https://open.spotify.com/track/5OyUqTLPS7j0rWyVIxMQMm\">Spotify</a>,\n  <a href=\"https://music.163.com/#/song?id=2014305188\">NetEase</a>]\n</summary>\n\n<p>作词 : Finale<br>作曲 : 河图<br>编曲 : 河图<br>笛子 : 笛呆子囚牛<br>混音 : 小吴太太<br>和声 : 小吴太太</p>\n<p>西北有蝉，名曰无梦。</p>\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br><span class=\"line\">39</span><br><span class=\"line\">40</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">十三年一月的冬 遇见雪上忽来的春风</span><br><span class=\"line\">绿衣缓步从容</span><br><span class=\"line\">你一笑冰雪融 秋水过惊鸿</span><br><span class=\"line\">万卷书此刻皆无用</span><br><span class=\"line\"></span><br><span class=\"line\">夜色问何谓美梦 是否心底愿望都放纵</span><br><span class=\"line\">如此星辰谁共</span><br><span class=\"line\">琥珀钟画堂空 人面照灯红</span><br><span class=\"line\">笛声里花开月明中</span><br><span class=\"line\"></span><br><span class=\"line\">夜半推窗明月正当空</span><br><span class=\"line\">你明媚面容 来随朝雾去同风</span><br><span class=\"line\">多少事还如一梦中</span><br><span class=\"line\"></span><br><span class=\"line\">我也怀恋过缱绻温柔风 少年不知初见便心动</span><br><span class=\"line\">纵使坐谈共醉仍懵懂 至隔河相望未相拥</span><br><span class=\"line\">我也徘徊过流连怅惘梦 小舟一入江海去无踪</span><br><span class=\"line\">从此不看飞雪与春风 世间谁能与你相同</span><br><span class=\"line\">此曲无终</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">你走过那年的冬 可怜有人寂寞从无梦</span><br><span class=\"line\">不知雪的夏虫</span><br><span class=\"line\">一曲尽星破空 自那年深冬</span><br><span class=\"line\">我才知梦境多汹涌</span><br><span class=\"line\"></span><br><span class=\"line\">夜色问何谓美梦 是否后会无期却重逢</span><br><span class=\"line\">长夜流星匆匆</span><br><span class=\"line\">琉璃灯月玲珑 你走后时空</span><br><span class=\"line\">仍上演梦境千万种</span><br><span class=\"line\"></span><br><span class=\"line\">夜半推窗明月正当空</span><br><span class=\"line\">你明媚面容 来随朝雾去同风</span><br><span class=\"line\">多少事还如一梦中</span><br><span class=\"line\"></span><br><span class=\"line\">我还怀恋那缱绻温柔风 更声迢递此夜再难永</span><br><span class=\"line\">何如回看光阴与情衷 用余生写故事种种</span><br><span class=\"line\">我还徘徊那流连怅惘梦 心有千言欲诉却辞穷</span><br><span class=\"line\">你曾说人间春夏秋冬 幸运是那一日相逢</span><br><span class=\"line\">雪落风中</span><br></pre></td></tr></table></figure>\n</details>\n<details>\n<summary>风烟之末\n  [<a href=\"https://www.youtube.com/watch?v=-vxe1IsdD3c\">YouTube</a>,\n  <a href=\"https://music.163.com/#/song?id=2116713419\">NetEase</a>]\n</summary>\n</details>\n<details>\n<summary>是风动\n  [<a href=\"https://5sing.kugou.com/yc/3471396.html\">5sing</a>,\n  <a href=\"https://open.spotify.com/track/3lePQ8c4jq7bTePsXEmslh\">Spotify</a>,\n  <a href=\"https://music.163.com/#/song?id=504686859\">NetEase</a>]\n</summary>\n</details>\n<details>\n<summary>无以为乡\n  [<a href=\"https://5sing.kugou.com/yc/4223892.html\">5sing</a>,\n  <a href=\"https://www.youtube.com/watch?v=PCfk6hMWu0A\">YouTube</a>,\n  <a href=\"https://open.spotify.com/track/5Q54ImjoYOtP4Yw9TGggsy\">Spotify</a>]\n</summary>\n\n<p>“我一直以为故乡两个字很难说，<br>没想到离开以后，那么轻易便说了出来。”</p>\n<p>河图 - 无以为乡<br>作词：狐不举<br>作曲：河图<br>编曲：河图<br>混音：河图<br>（部分素材取自沅陵山歌）</p>\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br><span class=\"line\">39</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">山窝窝 水络络 又见妹儿背篓光脚过</span><br><span class=\"line\">路坨坨 天阔阔 鞋儿破她笑着就踩脱</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">多云转晴的午后 红灯转行的路口</span><br><span class=\"line\">她新买的猫跟 卡在年久失修的排水沟</span><br><span class=\"line\">人群在她的左右 各自停停又走走</span><br><span class=\"line\">这不够出丑 都没人留意的年头</span><br><span class=\"line\"></span><br><span class=\"line\">掰下鞋跟的时候 突如其来的怀旧</span><br><span class=\"line\">上一次光脚时 还有人跟在她身后</span><br><span class=\"line\">那个人眉目温柔 那地方山清水秀</span><br><span class=\"line\">忽然在车流间 听见他歌声中的河流</span><br><span class=\"line\"></span><br><span class=\"line\">他唱山唱水 唱不老的故乡</span><br><span class=\"line\">她听哭听笑 听歌声外的远方</span><br><span class=\"line\"></span><br><span class=\"line\">山窝窝 水络络 又见妹儿背篓光脚过</span><br><span class=\"line\">路坨坨 天阔阔 鞋儿破她笑着就踩脱</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">她住在二十六楼 等月亮爬过窗口</span><br><span class=\"line\">俯瞰城市灯火 长明把那夜色 全都照透</span><br><span class=\"line\">她哼的旋律耳熟 几遍后唇角轻勾</span><br><span class=\"line\">好似再光着脚 就算踩在了山头</span><br><span class=\"line\"></span><br><span class=\"line\">偶然有思念悠久 却不愿问句是否</span><br><span class=\"line\">记忆中的人和山水 能为她片刻停留</span><br><span class=\"line\">离开后几个春秋 那念头从无到有</span><br><span class=\"line\">难以言说的故乡 早就不经意唱出口</span><br><span class=\"line\"></span><br><span class=\"line\">他唱山唱水 唱不老的故乡</span><br><span class=\"line\">她听哭听笑 听歌声外的远方</span><br><span class=\"line\"></span><br><span class=\"line\">山窝窝 水络络 又见妹儿背篓光脚过</span><br><span class=\"line\">路坨坨 天阔阔 鞋儿破她笑着就踩脱</span><br><span class=\"line\"></span><br><span class=\"line\">山窝窝 水络络 又见妹儿背篓光脚过</span><br><span class=\"line\">路坨坨 天阔阔 鞋儿破她笑着就踩脱</span><br></pre></td></tr></table></figure>\n</details>\n\n\n<!--\n<details>\n<summary>寸缕\n  [<a href=\"https://5sing.kugou.com/yc/2032150.html\">5sing</a>,\n  <a href=\"https://music.163.com/#/song?id=28453011\">NetEase</a>,\n  <a href=\"https://y.qq.com/n/ryqq/songDetail/003w1gRn0uPPJB\">QQ Music</a>]\n</summary>\n</details>\n<details>\n<summary>寻常传奇·梦中火\n  [<a href=\"https://5sing.kugou.com/yc/4183214.html\">5sing</a>]\n</summary>\n\n词：Finale \n曲：河图 \n编曲：河图 \n混音：小吴太太 \n\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">我依然偶尔会想起你轮廓 </span><br><span class=\"line\">时间想冲淡 记忆却执着 </span><br><span class=\"line\">曾有一个人 告别时也笨拙 </span><br><span class=\"line\">挥挥手 连流泪都沉默 </span><br><span class=\"line\"></span><br><span class=\"line\">你就像是我梦中刹那星火 </span><br><span class=\"line\">比世界绚烂 却擦肩而过 </span><br><span class=\"line\">惊鸿一瞥啊 那天高与海阔 </span><br><span class=\"line\">最美丽 也最凉薄 不可言说 </span><br><span class=\"line\"></span><br><span class=\"line\">传奇笔墨 写惯了壮阔风波 </span><br><span class=\"line\">也写下你 像星从天空降落 </span><br><span class=\"line\">寻常巷陌 上演着悲欢离合 </span><br><span class=\"line\">所幸你是 人间好奇的过客 </span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">你留下的歌还有人在相和 </span><br><span class=\"line\">听着微笑了 唱着却苦涩 </span><br><span class=\"line\">曾有一个人 问永远是什么 </span><br><span class=\"line\">是不是 你陪在我身侧 </span><br><span class=\"line\"></span><br><span class=\"line\">后来我走遍天涯去看山河 </span><br><span class=\"line\">相遇时平淡 离别时洒脱 </span><br><span class=\"line\">沿着你足迹 你停时就停泊 </span><br><span class=\"line\">最温柔 也最寂寞 飞蛾扑火 </span><br><span class=\"line\"></span><br><span class=\"line\">传奇笔墨 还写着曲折风波 </span><br><span class=\"line\">却写不出 与你看过的日落 </span><br><span class=\"line\">寻常巷陌 他们在悲欢离合 </span><br><span class=\"line\">你消失了 我的人生照亮过 </span><br><span class=\"line\"></span><br><span class=\"line\">传奇笔墨 还写着曲折风波 </span><br><span class=\"line\">却写不出 与你看过的日落 </span><br><span class=\"line\">寻常巷陌 他们在悲欢离合 </span><br><span class=\"line\">你消失了 我的人生照亮过</span><br></pre></td></tr></table></figure>\n</details>\n<details>\n<summary>寻常传奇·水上诗\n  [<a href=\"https://5sing.kugou.com/yc/4162463.html\">5sing</a>]\n</summary>\n\n<p>作词：Finale<br>作曲：河图<br>编曲：李建衡<br>笛箫：囚牛<br>琵琶：音若子兮<br>混音：小吴太太</p>\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">蓦然一眼难忘 相逢处人海涌浪 不知名敢赴约 未必轻狂</span><br><span class=\"line\">穿长街过诗墙 骑白马追流光</span><br><span class=\"line\">高台一曲铿锵 七折戏荡气回肠 天下客惟一个 能解此唱</span><br><span class=\"line\">谁拜别谁惆怅 谁回首不语相望</span><br><span class=\"line\">只是寻常故事 并不循传奇方向</span><br><span class=\"line\">我将载花满船 随风游荡 水面写诗行</span><br><span class=\"line\">人间太多欢喜 难收难藏 赠你一吻又何妨</span><br><span class=\"line\">我将铁衣长枪 星流南望 雪深灯千帐</span><br><span class=\"line\">凛冽风中芬芳 依稀唇上余香</span><br><span class=\"line\"></span><br><span class=\"line\">看遍人生百样 没辜负韶华辰光 梨花白了小窗 银杏绢黄</span><br><span class=\"line\">云下雨舟上霜 经春水渡秋江</span><br><span class=\"line\">烈火共雪飞扬 十八里风声回廊 箭雨惊起无数 暗涛黑浪</span><br><span class=\"line\">谁接令谁长望  谁留书换上戎装</span><br><span class=\"line\">若是传奇故事 或早有结局纸上</span><br><span class=\"line\">你把长夜敲响 荒原点亮 又走进月光</span><br><span class=\"line\">隐去温柔眼眸 少年模样 留我一行字滚烫</span><br><span class=\"line\">北风来自远方 人在远方 你此去他乡</span><br><span class=\"line\">踏过一路冰霜 握谁虚无手掌</span><br><span class=\"line\"></span><br><span class=\"line\">你把长夜敲响 荒原点亮 又走进月光</span><br><span class=\"line\">隐去温柔眼眸 少年模样 留我一行字滚烫</span><br><span class=\"line\">北风来自远方 人在远方 你此去他乡</span><br><span class=\"line\">踏过一路冰霜 握谁虚无手掌</span><br><span class=\"line\">握谁虚无手掌</span><br></pre></td></tr></table></figure>\n</details>\n\n<details>\n<summary>隐\n  [<a href=\"https://5sing.kugou.com/yc/2252340.html\">5sing</a>,\n  <a href=\"https://music.163.com/#/song?id=28452037\">NetEase</a>,\n  <a href=\"https://y.qq.com/n/ryqq/songDetail/0031rJyA06uXhg\">QQ Music</a>]\n</summary>\n</details>\n<details>\n<summary>云舒\n  [<a href=\"https://5sing.kugou.com/yc/3631102.html\">5sing</a>,\n  <a href=\"https://music.163.com/#/song?id=574335388\">NetEase</a>,\n  <a href=\"https://y.qq.com/n/ryqq/songDetail/001sEzK41Dmp6W\">QQ Music</a>]\n</summary>\n</details>\n<details>\n<summary>云归处\n  [<a href=\"https://5sing.kugou.com/yc/3197197.html\">5sing</a>,\n  <a href=\"https://music.163.com/#/song?id=448917682\">NetEase</a>,\n  <a href=\"https://y.qq.com/n/ryqq/songDetail/002zcI1X2FBrxG\">QQ Music</a>]\n</summary>\n</details>\n-->\n\n<!--\n<details>\n<summary>明朝有意抱琴来\n</summary>\n\n作词 : Finale\n作曲 : 河图\n编曲 : 李萌\n制作人 : 河图\n和声 : 小吴太太\n混音 : 小吴太太\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br><span class=\"line\">39</span><br><span class=\"line\">40</span><br><span class=\"line\">41</span><br><span class=\"line\">42</span><br><span class=\"line\">43</span><br><span class=\"line\">44</span><br><span class=\"line\">45</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">你提琉璃灯照一片夜</span><br><span class=\"line\">红衣黑发走过荒原雪</span><br><span class=\"line\">混沌初开时人间无季节</span><br><span class=\"line\">春夏秋冬皆是长夜</span><br><span class=\"line\"></span><br><span class=\"line\">你弹梧桐琴等一只蝶</span><br><span class=\"line\">长发垂衣坐在孤城月</span><br><span class=\"line\">懵懂如新雪无爱亦无邪</span><br><span class=\"line\">千载相逢匆匆一瞥</span><br><span class=\"line\"></span><br><span class=\"line\">梨花落 梨花开 相思人易怯</span><br><span class=\"line\">美梦中 笑语里 心事总难解</span><br><span class=\"line\">我不忍说离别 却问明月明年</span><br><span class=\"line\">何处停歇</span><br><span class=\"line\"></span><br><span class=\"line\">我举杯却空空如也</span><br><span class=\"line\">我有泪落下方知觉</span><br><span class=\"line\">若是明月无心</span><br><span class=\"line\">为何年年阴晴圆缺</span><br><span class=\"line\"></span><br><span class=\"line\">世间情从来生又灭</span><br><span class=\"line\">红尘意原本常更迭</span><br><span class=\"line\">回望前尘已绝</span><br><span class=\"line\">阑干倚遍独听风雪</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">你是天上清辉一轮月</span><br><span class=\"line\">是我心头不化一片雪</span><br><span class=\"line\">仙骨无寒暑千载犹昼夜</span><br><span class=\"line\">等过一生该是守约</span><br><span class=\"line\"></span><br><span class=\"line\">梨花落 梨花开 相见人易怯</span><br><span class=\"line\">美梦中 笑语里 心事总难解</span><br><span class=\"line\">我终于说离别 不知明月明年</span><br><span class=\"line\">何处停歇</span><br><span class=\"line\"></span><br><span class=\"line\">我举杯却空空如也</span><br><span class=\"line\">我有泪落下方知觉</span><br><span class=\"line\">若是明月无心</span><br><span class=\"line\">为何年年阴晴圆缺</span><br><span class=\"line\"></span><br><span class=\"line\">世间情从来生又灭</span><br><span class=\"line\">红尘意原本常更迭</span><br><span class=\"line\">回望前尘已绝</span><br><span class=\"line\">阑干倚遍独听风雪</span><br></pre></td></tr></table></figure>\n</details>\n-->\n\n\n\n<h1 id=\"2020\"><a href=\"#2020\" class=\"headerlink\" title=\"2020\"></a>2020</h1><details>\n<summary>归程</summary>\n齐栾·ZICATIC\n\n<p>作词 : 小然_raner<br>原曲：G.E.M邓紫棋-《回忆的沙漏》<br>演唱&#x2F;和声&#x2F;后期：齐栾</p>\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">一条没有方向 走不出寂寞的巷</span><br><span class=\"line\">眸子上了一层霜 月光冰凉</span><br><span class=\"line\">一个小心翼翼 却无法愈合的伤</span><br><span class=\"line\">两人的影 映在黑暗里残破的墙</span><br><span class=\"line\"></span><br><span class=\"line\">闪烁的灯光 黑白了梦想</span><br><span class=\"line\">欲望是汹涌海洋</span><br><span class=\"line\">暧昧的曲调 反复在吟唱</span><br><span class=\"line\"></span><br><span class=\"line\">风吹动那扇窗 苔藓爬满旧时光</span><br><span class=\"line\">吱呀呀叫嚣 少年不敢触及的过往</span><br><span class=\"line\">雨淋过的站台 曾经只对你说过的情话</span><br><span class=\"line\">我一步步踏上寻找你的 未知的归程</span><br><span class=\"line\"></span><br><span class=\"line\">一首没有情绪 听到流眼泪的歌</span><br><span class=\"line\">白色的衬衣 透明的痕迹</span><br><span class=\"line\">一段很长很长 到不会醒来的梦</span><br><span class=\"line\">梦里长巷 你头顶路灯昏暗的光</span><br><span class=\"line\"></span><br><span class=\"line\">闪烁的灯光 黑白了梦想</span><br><span class=\"line\">欲望是汹涌海洋</span><br><span class=\"line\">暧昧的曲调 反复在吟唱</span><br><span class=\"line\"></span><br><span class=\"line\">风吹动那扇窗 苔藓爬满旧时光</span><br><span class=\"line\">吱呀呀叫嚣 少年不敢触及的过往</span><br><span class=\"line\">雨淋过的站台 曾经只对你说过的情话</span><br><span class=\"line\">我一步步踏上寻找你的 未知的归程</span><br><span class=\"line\"></span><br><span class=\"line\">另一个世界 会不会很冷</span><br><span class=\"line\">请记得告诉我</span><br><span class=\"line\">除了黑夜 有无白昼</span><br><span class=\"line\"></span><br><span class=\"line\">风吹动那扇窗 苔藓爬满了旧时光</span><br><span class=\"line\">吱呀呀叫嚣 少年不敢触及的过往</span><br><span class=\"line\">雨淋过的站台 曾经只对你说过的情话</span><br><span class=\"line\">我一步步踏上寻找你的 未知的归程</span><br></pre></td></tr></table></figure>\n</details>\n<details>\n<summary>最佳怨侣</summary>\n<strong>最佳怨侣</strong>\n词：结风\n\n\n<p>醒悟与醒悟 之间跨越一个悲苦<br>股掌或刀尖 由我替你择一起舞<br>尝过了甜美 你才懂酸楚<br>断送了后来 我才信当初</p>\n<p>未被岁月扼杀的爱才会死于流俗<br>如光如电 做你平生最刺眼那束<br>你看这众生 可笑又可怖<br>怪你太温柔 世界太残酷</p>\n<p>做不成人物 就只是动物<br>生命从来 由有到无<br>在史册面前 谁不是白骨<br>你的忠贞 会化作一抔腐土</p>\n<p>做不成眷属 还能做遗属<br>爱与恨意 皆无出处<br>从这个将夜 到下个日出<br>愿你还是 五体投地最佳猎物</p>\n<p>给出一个借口能不能让自己信服<br>谁不明白 曾经同途就终将殊途<br>温暖是束缚 自由是孤独<br>明明是堕落 却自称返璞</p>\n<p>做不成人物 就只是动物<br>抵死缠绵 美人迟暮<br>若掏空灵魂 才叫作付出<br>是我自私 做不得爱的忠仆</p>\n<p>做不成眷属 还能做遗属<br>无法刻意 那就刻骨<br>热爱与憎恨 都证明记住<br>让我享受 你咬牙切齿的在乎</p>\n<p>我本是名著 你无格合著<br>我是执迷 你是罔顾<br>我无喜无悲 你会笑会哭<br>所以恨吧 我从未暴殄天物</p>\n<p>点燃一支烟 我吞下迷雾<br>空荡左胸 无可填补<br>拥遍有情人 最难是餍足<br>这红尘啊 春风几度挥霍无度</p>\n<p>最佳怨侣 春风几度都无温度</p>\n</details>\n<details>\n<summary>那里见\n  [<a href=\"https://www.youtube.com/watch?v=QJlXLnvtguU\">YouTube</a>,\n  <a href=\"https://music.163.com/#/song?id=2748660343\">NetEase</a>,\n  <a href=\"https://www.bilibili.com/video/BV11bn2zrEF9\">bilibili曲谱</a>]\n</summary>\n\n<p>词: 清橙<br>曲: 河图<br>编曲: 李萌<br>制作人: 河图<br>吉他: 李旦旦<br>和声: 小吴太太<br>混音: 小吴太太</p>\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">他还是会想年少时 随时光模糊的那些脸</span><br><span class=\"line\">蝉鸣喧嚷阵雨淅沥约好再见才分散</span><br><span class=\"line\">不舍得加快脚步还频频回看</span><br><span class=\"line\">招招手捉住明月也捉住他的思念</span><br><span class=\"line\"></span><br><span class=\"line\">他还是很想年少时 被微风吹走的万千言</span><br><span class=\"line\">废旧报纸泛黄照片老式抽屉都保管</span><br><span class=\"line\">就好像除了时间一切仍新鲜</span><br><span class=\"line\">等他再回头翻看依然有熟悉笑脸</span><br><span class=\"line\">他从不惧怕遥远遥远之处是最挂牵</span><br><span class=\"line\">一首歌未完就浮现 一场梦醒泪水涟涟</span><br><span class=\"line\">天真的人都相信 梦是世界的另外一面</span><br><span class=\"line\">从前在哪里相遇 此后在那里也一定相见</span><br><span class=\"line\"></span><br><span class=\"line\">他忽然梦到年少时 做出过选择的某一天</span><br><span class=\"line\">心绪很淡故事很短回忆长的没终点</span><br><span class=\"line\">一幕幕久违情节在复刻改演</span><br><span class=\"line\">原来另一个选项也并非就不遗憾</span><br><span class=\"line\">他从未奢求圆满圆满之时都有偿还</span><br><span class=\"line\">最好的住在心里面 最爱的要用力呼唤</span><br><span class=\"line\">知足的人都相信 梦是人生的再来一遍</span><br><span class=\"line\">从前在哪里失散 此后在那里也一定再见</span><br><span class=\"line\"></span><br><span class=\"line\">他从未奢求圆满圆满之时都有偿还</span><br><span class=\"line\">最好的住在心里面 最爱的要用力呼唤</span><br><span class=\"line\">知足的人都相信 梦是人生的再来一遍</span><br><span class=\"line\">从前在哪里失散 此后在那里也一定再见</span><br></pre></td></tr></table></figure>\n\n<p>会重逢 [<a href=\"https://www.bilibili.com/video/BV11JHjzFEX1\">bilibili</a>]</p>\n<p>作曲: 河图<br>演唱: 青溯<br>填词&#x2F;调音&#x2F;制作: 洛诵<br>愿君千万岁 岁岁长逢春</p>\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">偶尔问穿过山的风 这一路走得是否从容</span><br><span class=\"line\">千万里都未曾停歇 是不是有些匆匆</span><br><span class=\"line\">会不会 记起一只风筝的行踪</span><br><span class=\"line\">也偶然惊动檐铃 悄悄摘走谁的梦</span><br><span class=\"line\"></span><br><span class=\"line\">或许听过某个少年 倾诉着再无人知情衷</span><br><span class=\"line\">或许看过某次黄昏 做独一无二观众</span><br><span class=\"line\">你经历这世界多少春夏秋冬</span><br><span class=\"line\">都是如何去见证 再无后话的相逢</span><br><span class=\"line\">偏人间相逢种种 也短暂如天涯惊鸿</span><br><span class=\"line\">一瞬欢喜刹那心动 未经转眼便化飘蓬</span><br><span class=\"line\">这时光无声汹涌 曾擦肩多少熟悉面孔</span><br><span class=\"line\">只留剩明月悬空 照当时故人照眉眼朦胧</span><br><span class=\"line\"></span><br><span class=\"line\">你曾听过多少少年 倾诉着再无人知情衷</span><br><span class=\"line\">你曾看过多少黄昏 做独一无二观众</span><br><span class=\"line\">这世界轮转过无数春夏秋冬</span><br><span class=\"line\">会不会出现一次 终有后话的相逢</span><br><span class=\"line\">虽人间相逢种种 皆短暂如天涯惊鸿</span><br><span class=\"line\">一瞬欢喜刹那心动 也永恒热烈到无穷</span><br><span class=\"line\">这时光无声汹涌 曾经过多少熟悉面孔</span><br><span class=\"line\">终究有明月悬空 为当时故人照眉眼朦胧</span><br><span class=\"line\"></span><br><span class=\"line\">虽人间相逢种种 皆短暂如天涯惊鸿</span><br><span class=\"line\">一瞬欢喜刹那心动 也永恒热烈到无穷</span><br><span class=\"line\">这时光无声汹涌 曾记住多少熟悉面孔</span><br><span class=\"line\">终究有明月悬空 当时故人会在来处相逢</span><br></pre></td></tr></table></figure>\n</details>\n\n\n\n\n<h1 id=\"2014\"><a href=\"#2014\" class=\"headerlink\" title=\"2014\"></a>2014</h1><details>\n<summary>社戏\n  [<a href=\"https://5sing.kugou.com/yc/967828.html\">5sing</a>]\n</summary>\n\n<p>《社戏》<br>作词&#x2F;作曲：安九<br>编曲：bear<br>演唱：安九<br>和声&#x2F;后期：Hita</p>\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br><span class=\"line\">39</span><br><span class=\"line\">40</span><br><span class=\"line\">41</span><br><span class=\"line\">42</span><br><span class=\"line\">43</span><br><span class=\"line\">44</span><br><span class=\"line\">45</span><br><span class=\"line\">46</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">==========================</span><br><span class=\"line\">旧河畔，老房屋，一切如故。梦里那个依稀年少的身影，却早已不见。</span><br><span class=\"line\">撑着伞，在小雨里摇船听戏，那些所谓的悲欢离合、回不去的曾经，不过就是戏台上的一颦一笑、一嗔一喜。</span><br><span class=\"line\"><span class=\"section\">——题记</span></span><br><span class=\"line\"><span class=\"section\">==========================</span></span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">A1</span><br><span class=\"line\">暮色里，旧歌戏，</span><br><span class=\"line\">乡间草台唱不已。</span><br><span class=\"line\">摇蓬船，听几曲，</span><br><span class=\"line\">胡琴咿呀渔光寂。</span><br><span class=\"line\"></span><br><span class=\"line\">B1</span><br><span class=\"line\">远处村庄桨声细，</span><br><span class=\"line\">依稀曾是你；</span><br><span class=\"line\">人潮中红红绿绿，</span><br><span class=\"line\">阿婆茶香似往昔。</span><br><span class=\"line\"></span><br><span class=\"line\">C1</span><br><span class=\"line\">时光重叠在年少的我青衣水袖清唱一曲，</span><br><span class=\"line\">弹指间岁月换了红颜不知你可否会忆起：</span><br><span class=\"line\">我踮足凝气，</span><br><span class=\"line\">几句《临江驿》，</span><br><span class=\"line\">一转身你站在桥那边回眸浅笑吹着短笛。</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">B2</span><br><span class=\"line\">那年灯下闹花衣，</span><br><span class=\"line\">回头悄看去。</span><br><span class=\"line\">人潮中来回寻你，</span><br><span class=\"line\">月下拾一支短笛。</span><br><span class=\"line\"></span><br><span class=\"line\">C2</span><br><span class=\"line\">时光老去远了年少的我盛妆唱的那一曲，</span><br><span class=\"line\">戏台上老旦已记不起当年回眸的可是你。</span><br><span class=\"line\">船家来又去，</span><br><span class=\"line\">月色照涟漪，</span><br><span class=\"line\">我站在桥边回望过去只见松灯仍迷离……</span><br><span class=\"line\"></span><br><span class=\"line\">C3</span><br><span class=\"line\">时光老去远了年少的我盛妆唱的那一曲，</span><br><span class=\"line\">恍惚桥边又看见你对我笑说：“你也在这里。”</span><br><span class=\"line\">生旦来又去，</span><br><span class=\"line\">净丑映涟漪，</span><br><span class=\"line\">便将草台收入纸伞中带回梦里续一曲。</span><br></pre></td></tr></table></figure>\n</details>\n<details>\n<summary>旧情 \n  [<a href=\"http://5sing.kugou.com/yc/1383414.html\">5sing</a>,\n  <a href=\"https://y.qq.com/n/yqq/song/002llh2r1KxyO6.html\">QQ Music</a>]\n</summary>\n\n<p>——————水韵弦音原创出品————————</p>\n<p>作&#x2F;编曲：官宇<br>作词：壬岁<br>演唱：檀烧【墨明棋妙】<br>后期：沙沙<br>海报：非罪</p>\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">酒杯里 光影变幻的液体 苦涩</span><br><span class=\"line\">霓虹灯 嘲笑着 曾经的怯懦</span><br><span class=\"line\">这感觉 痛彻心扉 却还是等着</span><br><span class=\"line\">走过 形形色色</span><br><span class=\"line\"></span><br><span class=\"line\">离开时候（时候） 轻声哽咽（哽咽）</span><br><span class=\"line\">最后背影（背影） 滑入暮色（暮色）</span><br><span class=\"line\">沉默的夜（黑夜） 回忆来过（来过）</span><br><span class=\"line\">可曾记得（记得） 你许的诺（许诺）</span><br><span class=\"line\"></span><br><span class=\"line\">跌跌撞撞（跌撞） 值不值得（值得）</span><br><span class=\"line\">有些难过（难过） 没人懂得（懂得）</span><br><span class=\"line\">那些过去（过去） 布满角落（角落）</span><br><span class=\"line\">只将相逢（相逢） 轻轻定格（定格）</span><br><span class=\"line\"></span><br><span class=\"line\">酒杯里 光影变幻的液体 苦涩</span><br><span class=\"line\">霓虹灯 嘲笑着 曾经的怯懦</span><br><span class=\"line\">这首歌 低沉唱着 什么是深刻</span><br><span class=\"line\">一路 不再停泊</span><br></pre></td></tr></table></figure>\n</details>\n<details>\n<summary>悟空\n  [<a href=\"https://5sing.kugou.com/yc/2673871.html\">5sing</a>,\n  <a href=\"https://music.163.com/#/song?id=29769321\">NetEase</a>,\n  <a href=\"https://y.qq.com/n/ryqq/songDetail/0017NQv13m2mdy\">QQ Music</a>,\n  <a href=\"http://www.bilibili.com/video/av1711338/\">贰婶</a>]\n</summary>\n\n<p>「不贰」-悟空</p>\n<p>作词：suixinsuiyuan<br>作曲：贰婶、只有影子<br>编曲：Tureleon<br>混音：杜凌云<br>母带：嘉熹<br>演唱：贰婶</p>\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br><span class=\"line\">39</span><br><span class=\"line\">40</span><br><span class=\"line\">41</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">你幻化的烟霞该如何形容？</span><br><span class=\"line\">一场梦怕有人惊动</span><br><span class=\"line\">我记得水帘飞溅，老树青藤</span><br><span class=\"line\">记得星河灿烂，自在枯荣</span><br><span class=\"line\"></span><br><span class=\"line\">山桃熟了几次，海浪打了几层</span><br><span class=\"line\">记得你在无垠苍穹，唤我一声</span><br><span class=\"line\"></span><br><span class=\"line\">看我摇山撼海夸神通</span><br><span class=\"line\">七十二变化无穷</span><br><span class=\"line\">逞志纵勇闹天宫</span><br><span class=\"line\">目上无尘目下空</span><br><span class=\"line\"></span><br><span class=\"line\">你笑了吗？你的笑在我心中</span><br><span class=\"line\">就做你无双披靡，盖世英雄</span><br><span class=\"line\"></span><br><span class=\"line\">叹浮生种种不过流水落红</span><br><span class=\"line\">一挥手五百年寂寞</span><br><span class=\"line\">我了悟轮回生灭，孑然如初</span><br><span class=\"line\">了悟福德因果，有始无终</span><br><span class=\"line\"></span><br><span class=\"line\">宿命失之何求？大道得之何用？</span><br><span class=\"line\">了悟你于红尘倥偬，送我一程</span><br><span class=\"line\"></span><br><span class=\"line\">一别烈焰焚身困樊笼</span><br><span class=\"line\">铁丸铜汁五指峰</span><br><span class=\"line\">八十一劫难重重</span><br><span class=\"line\">回首前尘各西东</span><br><span class=\"line\"></span><br><span class=\"line\">你哭了吗？你的泪在我心中</span><br><span class=\"line\">再给我多一万年，或一分钟</span><br><span class=\"line\"></span><br><span class=\"line\">却是齐天彻地人无踪</span><br><span class=\"line\">深恩厚义去匆匆</span><br><span class=\"line\">斗战伏魔何曾胜？</span><br><span class=\"line\">精诚所至一场空</span><br><span class=\"line\"></span><br><span class=\"line\">你知道吧？你依然在我心中</span><br><span class=\"line\">万般过眼成空，有你便不同</span><br><span class=\"line\"></span><br><span class=\"line\">腾云驾雾，驭电驰风，来不及相逢</span><br></pre></td></tr></table></figure>\n</details>\n\n<details>\n<summary>混沌\n  [<a href=\"http://5sing.kugou.com/yc/607625.html\">5sing</a>,\n  <a href=\"https://music.163.com/#/song?id=274598\">NetEase</a>,\n  <a href=\"https://y.qq.com/n/ryqq/songDetail/002HOH6N4QUefI\">QQ Music</a>]\n</summary>\n\n<p>作词 : EDIQ<br>作曲 : 丢子<br>演唱 : 流月Ryutsuki.</p>\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br><span class=\"line\">39</span><br><span class=\"line\">40</span><br><span class=\"line\">41</span><br><span class=\"line\">42</span><br><span class=\"line\">43</span><br><span class=\"line\">44</span><br><span class=\"line\">45</span><br><span class=\"line\">46</span><br><span class=\"line\">47</span><br><span class=\"line\">48</span><br><span class=\"line\">49</span><br><span class=\"line\">50</span><br><span class=\"line\">51</span><br><span class=\"line\">52</span><br><span class=\"line\">53</span><br><span class=\"line\">54</span><br><span class=\"line\">55</span><br><span class=\"line\">56</span><br><span class=\"line\">57</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">月 照故里 听马蹄</span><br><span class=\"line\">带半世的记忆</span><br><span class=\"line\">江河 未必会随我独自老去</span><br><span class=\"line\">叶 溅着雨 榕树下</span><br><span class=\"line\">我披上湿透的蓑衣</span><br><span class=\"line\">向远方遥望着 哭泣</span><br><span class=\"line\"></span><br><span class=\"line\">混沌中 有多少痴痴爱爱在作俑</span><br><span class=\"line\">（有人发梦 我在发疯）</span><br><span class=\"line\">你陪我再撞一盅</span><br><span class=\"line\">离离合合 时逢乱世此情最浓</span><br><span class=\"line\">（故事不用有始有终 此段只是命运作弄）</span><br><span class=\"line\">谁明了 我心自逍遥怎么庸</span><br><span class=\"line\">不必说也不求谁能懂</span><br><span class=\"line\">拭 唇上的裂缝 卸下了战戎</span><br><span class=\"line\">为你 歌颂</span><br><span class=\"line\">策白马啸西风</span><br><span class=\"line\">若我醉 就醉死在梦中</span><br><span class=\"line\">随战鼓雷 指你看那道彩虹</span><br><span class=\"line\">这伏兵还未动 即如弦上弓</span><br><span class=\"line\">山海啸箭万支火光涌</span><br><span class=\"line\">我生于混沌中</span><br><span class=\"line\">你应当读懂我的心痛</span><br><span class=\"line\">持着利斧欲劈开爱恨朦胧</span><br><span class=\"line\">待战火燎原后 生死难与共</span><br><span class=\"line\">方知此情有多重</span><br><span class=\"line\"></span><br><span class=\"line\">战乱时 你在我掌心沾了一点泥</span><br><span class=\"line\">（别在做序 听我叹息）</span><br><span class=\"line\">写成残垣一道迷</span><br><span class=\"line\">关于分离从来不是谁的传奇</span><br><span class=\"line\">（那些过客回忆过去 过去缘分只待回忆）</span><br><span class=\"line\">我仿佛 又听到你哼着乡曲</span><br><span class=\"line\">山那峰 小镇满怀风雨</span><br><span class=\"line\">我会为你饮下去 就算醉过去</span><br><span class=\"line\">难逃此局</span><br><span class=\"line\">刀剑如谱过曲</span><br><span class=\"line\">就让我成为你的音律</span><br><span class=\"line\">你若愿意 我化身焰火飞絮</span><br><span class=\"line\">借一冬的寒意 呼吸着呼吸</span><br><span class=\"line\">交杂离别时刻的诗句</span><br><span class=\"line\">旧桥人潮百里</span><br><span class=\"line\">只有我涌着万股思绪</span><br><span class=\"line\">本是红颜为何唱着小生戏</span><br><span class=\"line\">身后谁试探说 原来真是你</span><br><span class=\"line\">刹那混沌再开启</span><br><span class=\"line\"></span><br><span class=\"line\">策白马啸西风</span><br><span class=\"line\">若我醉 要醉死在梦中</span><br><span class=\"line\">随战鼓雷 指你看那道彩虹</span><br><span class=\"line\">这伏兵还未动 即如弦上弓</span><br><span class=\"line\">山海啸箭万支火光涌</span><br><span class=\"line\">我生于混沌中</span><br><span class=\"line\">你应当读懂我的心痛</span><br><span class=\"line\">持着利斧欲劈开爱恨朦胧</span><br><span class=\"line\">待战火燎原后 生死难与共</span><br><span class=\"line\">方知此情有多重</span><br></pre></td></tr></table></figure>\n</details>\n<details>\n<summary>再逢明月照九州\n  [<a href=\"https://5sing.kugou.com/yc/230019.html\">5sing</a>,\n  <a href=\"https://5sing.kugou.com/yc/229600.html\">5sing</a>,\n  <a href=\"https://music.163.com/#/song?id=239566\">NetEase</a>,\n  <a href=\"https://y.qq.com/n/ryqq/songDetail/002WBeJf22vDqV\">QQ Music</a>]\n</summary>\n[<a href=\"https://baike.baidu.com/item/%E5%86%8D%E9%80%A2%E6%98%8E%E6%9C%88%E7%85%A7%E4%B9%9D%E5%B7%9E/9033149\">百度百科</a>,\n<a href=\"https://5sing.kugou.com/fc/1129054.html\">流月(原版)</a>,\n<a href=\"https://music.163.com/#/song?id=31877489\">河图(寻仙版)</a>,\n<a href=\"https://y.qq.com/n/ryqq/songDetail/000sgwqO2nDxaA\">河图(寻仙)</a>,\n<a href=\"https://5sing.kugou.com/fc/16043061.html\">奇然(寻仙版)</a>,\n<a href=\"https://y.qq.com/n/ryqq/songDetail/003fO1K30vnFlt\">奇然(寻仙)</a>]\n\n<p>原版 再逢明月照九州</p>\n<p>作曲&#x2F;编曲：M.H.C@（小狮子丢丢）<br>作词：EDIQ<br>和声&#x2F;演唱&#x2F;后期：流月</p>\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">我用离愁酿成一壶浓烈的酒</span><br><span class=\"line\">夜半饮雨飘零在山那头</span><br><span class=\"line\">小城旧事如影随形留做词一首</span><br><span class=\"line\">爱成伤 为何不愿放手</span><br><span class=\"line\"></span><br><span class=\"line\">你住过的屋檐而今朝露湿透</span><br><span class=\"line\">洒下墨色绘入遥远深秋</span><br><span class=\"line\">灯影伤人自嘲身似那浮萍向东流</span><br><span class=\"line\">盼明月 融余晖淡闲愁</span><br><span class=\"line\"></span><br><span class=\"line\">仲夏来临后 卷帘 云散 啊</span><br><span class=\"line\"></span><br><span class=\"line\">月儿弯弯照九洲,</span><br><span class=\"line\">几家欢乐几家愁,</span><br><span class=\"line\">几家高楼饮美酒,</span><br><span class=\"line\">几家流落在呀嘛在街头,在巷口</span><br><span class=\"line\"></span><br><span class=\"line\">大寒之后绒雪吹满我的眉头</span><br><span class=\"line\">与你擦肩城南落枫小桥边</span><br><span class=\"line\">你呢喃着我们熟悉的陈词一首</span><br><span class=\"line\">稍驻足 涌泪却未回头</span><br><span class=\"line\"></span><br><span class=\"line\">桨声涟漪中 明月 依旧 啊</span><br><span class=\"line\"></span><br><span class=\"line\">月儿弯弯照九洲,</span><br><span class=\"line\">几家欢乐几家愁,</span><br><span class=\"line\">几家高楼饮美酒,</span><br><span class=\"line\">几家流落在呀嘛在街头,在巷口</span><br><span class=\"line\"></span><br><span class=\"line\">月儿弯弯照九洲,</span><br><span class=\"line\">几家欢乐几家愁,</span><br><span class=\"line\">几家高楼饮美酒,</span><br><span class=\"line\">几家流落在呀嘛在街头,在巷口</span><br><span class=\"line\"></span><br><span class=\"line\">月弯弯 声声漫（未婵娟） 月弯弯 故人远</span><br></pre></td></tr></table></figure>\n\n<p>寻仙插曲版 再逢明月照九州</p>\n<p>作曲&#x2F;编曲：M.H.C@（小狮子丢丢）<br>作词：EDIQ<br>和声编写&#x2F;演唱&#x2F;后期：HITA</p>\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">我将闲愁酿成一壶离别的酒</span><br><span class=\"line\">夜半饮雨飘零在山那头</span><br><span class=\"line\">凡尘旧事如影随形留下词一首</span><br><span class=\"line\">若成仙 为何不愿放手</span><br><span class=\"line\"></span><br><span class=\"line\">你住过的屋檐而今朝露湿透</span><br><span class=\"line\">伴随墨色绘入遥远深秋</span><br><span class=\"line\">烛影扰人自嘲身似那浮萍向东流</span><br><span class=\"line\">唤明月 融余辉淡闲愁</span><br><span class=\"line\"></span><br><span class=\"line\">仲夏来临后 卷帘 唱弹 啊</span><br><span class=\"line\"></span><br><span class=\"line\">月儿弯弯照九州</span><br><span class=\"line\">几家欢乐几家愁</span><br><span class=\"line\">几家高楼饮美酒</span><br><span class=\"line\">几家流落在呀嘛在街头 在巷口</span><br><span class=\"line\"></span><br><span class=\"line\">多年之后绒雪吹白你的眉头</span><br><span class=\"line\">与我擦肩城东落枫古井边</span><br><span class=\"line\">你呢喃着我们熟悉的陈词一首</span><br><span class=\"line\">陌路人 涌泪也别回头</span><br><span class=\"line\"></span><br><span class=\"line\">桨声涟漪中 尘世 依旧 啊</span><br><span class=\"line\"></span><br><span class=\"line\">月儿弯弯照九州</span><br><span class=\"line\">几家欢乐几家愁</span><br><span class=\"line\">几家高楼饮美酒</span><br><span class=\"line\">几家流落在呀嘛在街头 在巷口</span><br><span class=\"line\"></span><br><span class=\"line\">月弯弯 去寻仙（未婵娟） 月弯弯 故人远</span><br></pre></td></tr></table></figure>\n</details>\n\n<!--\n<details>\n<summary>贪欢\n  [<a href=\"https://5sing.kugou.com/yc/1071925.html\">5sing</a>]\n</summary>\n</details>\n<details>\n<summary>娑婆\n  [<a href=\"https://5sing.kugou.com/yc/1051767.html\">5sing</a>]\n</summary>\n</details>\n<details>\n<summary>契约\n  [<a href=\"http://5sing.kugou.com/yc/754153.html\">5sing</a>,\n  <a href=\"https://music.163.com/#/song?id=34828857\">NetEase</a>,\n  <a href=\"https://y.qq.com/n/ryqq/songDetail/003spZQB0NFvQm\">QQ Music</a>]\n</summary>\n\n曲：Zoey\n词：流月\n歌/和声：流月\n\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">漆黑的天幕 凛冽的风像在倾诉</span><br><span class=\"line\">火光蔓延阻断退路 月色模糊 谁在哭</span><br><span class=\"line\">残破的断柱 那些故事无人解读</span><br><span class=\"line\">你的眼眸藏着迷雾 倒映我们的最初</span><br><span class=\"line\"></span><br><span class=\"line\">下弦月 流淌的鲜血书写着我们永恒的契约</span><br><span class=\"line\">这长夜硝烟太浓烈 无法去拒绝 燃烧或被毁灭</span><br><span class=\"line\"></span><br><span class=\"line\">是命运的玩笑吗 夜莺在树梢上呜咽</span><br><span class=\"line\">风吹起满地破碎的落叶 你的笑颜看不真切</span><br><span class=\"line\">天空开始飘雪 眼泪在无声中冻结</span><br><span class=\"line\">短暂的相逢转瞬就不见 是谁又成了谁的罪孽</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">梦境已结束 时间尽头空留孤独</span><br><span class=\"line\">这趟漫长的旅途 不过是一场追逐</span><br><span class=\"line\">要如何回顾 是非错对都已入土</span><br><span class=\"line\">你说宿命太残酷 没有谁应该背负</span><br><span class=\"line\"></span><br><span class=\"line\">那契约已经被改写 冰冷的锁链无尽的长阶</span><br><span class=\"line\">若回忆褪色成幻觉 是否这世界只剩下离别</span><br><span class=\"line\"></span><br><span class=\"line\">就将过去遗忘吧 虚幻的幸福都凋谢</span><br><span class=\"line\">闭上双眼思念纠缠成结 解不开亦无法抛却</span><br><span class=\"line\">轮回绵延不绝 你的脸隐没在黑夜</span><br><span class=\"line\">失去的错过的全都湮灭 看天边红色月光皎洁</span><br></pre></td></tr></table></figure>\n</details>\n\n<details>\n<summary>奋不顾身\n  [<a href=\"https://music.163.com/#/song?id=28660048\">NetEase</a>]\n</summary>\n原曲：容祖儿《蜃楼》<br>\n填词：狐不举<br>\n翻唱：檀烧<br>\n后期：丢子<br>\n海报：大猫<br>\n\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br><span class=\"line\">39</span><br><span class=\"line\">40</span><br><span class=\"line\">41</span><br><span class=\"line\">42</span><br><span class=\"line\">43</span><br><span class=\"line\">44</span><br><span class=\"line\">45</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">独自赴你梦中 寻觅觅 悄埋前盟</span><br><span class=\"line\">拈一瓣花想红 落一地 霜白隆冬</span><br><span class=\"line\">爱者艳而凶 厌者寒而冗</span><br><span class=\"line\">淋过酒雨吹着薰风</span><br><span class=\"line\">沉醉时风情万种 我又算何种</span><br><span class=\"line\">惊醒时别道珍重</span><br><span class=\"line\"></span><br><span class=\"line\">造一次奋不顾身的勇</span><br><span class=\"line\">必须赋予这情衷 无奈亦无用</span><br><span class=\"line\">化蝶幻鬼深嵌青丝掌底与黄土陇中</span><br><span class=\"line\">都值此夜将永</span><br><span class=\"line\"></span><br><span class=\"line\">无谓 痴字写就病作头</span><br><span class=\"line\">不似草木徒知凋又复萌</span><br><span class=\"line\">非走兽愚蒙 君当解我</span><br><span class=\"line\">若你张臂拥我坠深渊 我跃步从容</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">想你是烟花冢 有情天 绚烂当空</span><br><span class=\"line\">望一眼烙惊鸿 再一瞬 寂黑匆匆</span><br><span class=\"line\">来之慕而宠 去之惜而纵</span><br><span class=\"line\">生动魂魄不老面孔</span><br><span class=\"line\">寂寥处车水马龙 寻一缕影踪</span><br><span class=\"line\">欢喜处与你重逢</span><br><span class=\"line\"></span><br><span class=\"line\">承这次奋不顾身的痛</span><br><span class=\"line\">必须强调这情同 相别更相通</span><br><span class=\"line\">画皮刻骨印迹五内焚苦与心上铭荣</span><br><span class=\"line\">都琢此意玲珑</span><br><span class=\"line\"></span><br><span class=\"line\">诚然 随字写就先需有</span><br><span class=\"line\">不似飞鸟难捕歇又逃笼</span><br><span class=\"line\">非蝼蚁沙虫 君当敬我</span><br><span class=\"line\">若你回身邀我闯冥殿 我笑覆天宫</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">扑这次奋不顾身的空</span><br><span class=\"line\">必须实践这情盟 自矜不自控</span><br><span class=\"line\">花红隆冬无论天长地久与惊鸿匆匆</span><br><span class=\"line\">都称此间英雄</span><br><span class=\"line\"></span><br><span class=\"line\">何惧 爱字写就必经受</span><br><span class=\"line\">不似风情万种之后珍重</span><br><span class=\"line\">非烟花旧冢 君当应我</span><br><span class=\"line\">若你轻呓思我再邂逅 我赴你故梦</span><br></pre></td></tr></table></figure>\n</details>\n-->\n\n\n<h1 id=\"2026\"><a href=\"#2026\" class=\"headerlink\" title=\"2026\"></a>2026</h1><details>\n<summary>风姿物语·李煜·青莲雪\n  [<a href=\"https://www.youtube.com/watch?v=tfb4SA-9oVk\">YouTube</a>,\n  <a href=\"https://music.163.com/#/song?id=233689\">NetEase</a>]\n</summary>\n\n<p>風姿物語·李煜·青蓮雪</p>\n<p>原曲：和田熏《穿越時空的思念》<br>填詞&#x2F;演唱：Finale</p>\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">是誰又撞碎了一輪海中月</span><br><span class=\"line\">醉夢裏 長笑歌萬闕</span><br><span class=\"line\">是誰又在海上吹那楊柳葉</span><br><span class=\"line\">六月裏 天涯飛白雪</span><br><span class=\"line\"> </span><br><span class=\"line\">千人戰幾番秦淮水飄紅夜</span><br><span class=\"line\">莫回首 百年相思難解</span><br><span class=\"line\">卻回首為你指間笛聲咽</span><br><span class=\"line\">再回首 看梅花不謝</span><br><span class=\"line\"> </span><br><span class=\"line\">多少年生死一笑劍歌烈</span><br><span class=\"line\">問天下 誰能掌緣生滅</span><br><span class=\"line\">誰又在擡頭望漫天青蓮雪</span><br><span class=\"line\">誰又在 輕聲說離別</span><br><span class=\"line\"> </span><br><span class=\"line\">誰又在 輕聲說離別</span><br></pre></td></tr></table></figure>\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">是谁又撞碎了一轮海中月</span><br><span class=\"line\">醉梦里 长笑歌万阙</span><br><span class=\"line\">是谁又在海上吹那杨柳叶</span><br><span class=\"line\">六月里 天涯飞白雪</span><br><span class=\"line\"></span><br><span class=\"line\">千人战几番秦淮水飘红夜</span><br><span class=\"line\">莫回首 百年相思难解</span><br><span class=\"line\">却回首为你指间笛声咽</span><br><span class=\"line\">再回首 看梅花不谢</span><br><span class=\"line\"></span><br><span class=\"line\">多少年生死一笑剑歌烈</span><br><span class=\"line\">问天下 谁能掌缘生灭</span><br><span class=\"line\">谁又在抬头望漫天青莲雪</span><br><span class=\"line\">谁又在 轻声说离别 谁又在 轻声说离别</span><br></pre></td></tr></table></figure>\n</details>\n<details>\n<summary>风流\n  [<a href=\"https://music.163.com/#/song?id=33872407\">NetEase</a>]\n</summary>\n\n<p>作词 : Finale</p>\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">春水汤汤 一时无涯</span><br><span class=\"line\">柳絮轻软 流水尽飞花</span><br><span class=\"line\">春雨楼头 横吹尺八</span><br><span class=\"line\">青衫洗旧 客京华</span><br><span class=\"line\">春风浩荡 目极天涯</span><br><span class=\"line\">犹是少年 风姿正飒沓</span><br><span class=\"line\">盏中泉水 鬓边杏花</span><br><span class=\"line\">赏罢拂衣 家天下</span><br><span class=\"line\">三分醒 弦挥风雅</span><br><span class=\"line\">七分醉 剑指潇洒</span><br><span class=\"line\">摇曳几点寒星 水云半斜</span><br><span class=\"line\">夜如水 谁人长堤系马</span><br><span class=\"line\">昔日天下 今天涯</span><br><span class=\"line\">念白：</span><br><span class=\"line\">江湖谁与问零丁，</span><br><span class=\"line\">几回驻马看潮平。</span><br><span class=\"line\">此心若得一株雪，</span><br><span class=\"line\">人生何处不清明。</span><br></pre></td></tr></table></figure>\n</details>\n<details>\n<summary>家乡\n  [<a href=\"https://www.youtube.com/watch?v=ccWiaZ1j7s0\">YouTube</a>,\n  <a href=\"https://music.163.com/#/song?id=233711\">NetEase</a>,\n  <a href=\"https://www.bilibili.com/video/BV1X14y187BV/?vd_source=c22d6182e4d5d0880f8c1a72d0c9dab0\">bilibili</a>]\n</summary>\n\n<p>作词 : Finale<br>作曲 : 丢子<br>编曲&#x2F;和声编配&#x2F;混音：丢子<br>和声：Finale<br>古筝演奏：猛虎蔷薇<br>二胡演奏：河图</p>\n<p>◎墨明棋妙原创音乐团队出品◎</p>\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">不知道这些年 他们唱了又唱</span><br><span class=\"line\">唱的是什么歌 响在心上</span><br><span class=\"line\">只知道那美丽 胜过一切诗行</span><br><span class=\"line\">像黑暗荒野 有一盏灯点亮</span><br><span class=\"line\"></span><br><span class=\"line\">我会记得它 直到白发苍苍</span><br><span class=\"line\">记得它的旋律 温柔又哀伤</span><br><span class=\"line\">深夜里听到它 总会想起时光</span><br><span class=\"line\"></span><br><span class=\"line\">天空中来的风 路过多少地方</span><br><span class=\"line\">看过多少美景 多少忧伤</span><br><span class=\"line\">来来去去的人 都会变成过往</span><br><span class=\"line\">只有那支歌 永远不被遗忘</span><br><span class=\"line\"></span><br><span class=\"line\">我会记得它 直到白发苍苍</span><br><span class=\"line\">记得它的尾音 沙哑又绵长</span><br><span class=\"line\">在多少深夜里 温暖我的脸庞</span><br><span class=\"line\"></span><br><span class=\"line\">后来谁哭了 大雨落在远方</span><br><span class=\"line\">问为什么 回去的路那么长</span><br><span class=\"line\">去吧 用力推开窗</span><br><span class=\"line\">看 满天的月光</span><br><span class=\"line\">回想那一支歌怎么唱</span><br><span class=\"line\"></span><br><span class=\"line\">有一个声音 枯萎了还芬芳</span><br><span class=\"line\">许多梦 在心底珍藏</span><br><span class=\"line\">茫茫人海中 多少次回头望</span><br><span class=\"line\">找自己 少年的模样</span><br><span class=\"line\">他们流着泪 拍着手轻轻唱</span><br><span class=\"line\">小时候 旧了的月光</span><br><span class=\"line\">柳叶绿 荷花香 最美丽的家乡</span><br><span class=\"line\"></span><br><span class=\"line\">我会记得它 直到白发苍苍</span><br><span class=\"line\">那旋律 温柔又哀伤</span><br><span class=\"line\">柳叶绿 荷花香 最美丽的家乡</span><br><span class=\"line\">轻轻唱 那旋律 它温柔又哀伤</span><br><span class=\"line\"></span><br><span class=\"line\">-The End-</span><br></pre></td></tr></table></figure>\n</details>\n\n<details>\n<summary>et cetera\n</summary>\n\n<p>命理难说 [<a href=\"https://5sing.kugou.com/yc/1067277.html\">5sing</a>]<br>乱世情缘 [<a href=\"https://www.missevan.com/sound/player?id=314996\">missevan</a>]<br><a href=\"https://www.missevan.com/explore/13302?p=3\">梦璟SAYA</a><br>徒然歌 [<a href=\"https://5sing.kugou.com/yc/1629006.html\">5sing</a>]</p>\n</details>\n\n\n\n<!--\n# 2025\n\n<details>\n<summary>情钟意浓\n  [<a href=\"https://www.bilibili.com/video/BV1LF411e7P1?vd_source=c22d6182e4d5d0880f8c1a72d0c9dab0&spm_id_from=333.788.videopod.episodes&p=63\">bilibili</a>]\n</summary>\n</details>\n<detail>\n<summary>翡翠志\n  [<a href=\"https://www.youtube.com/watch?v=itulAM01By4\">YouTube</a>]\n</summary>\n</detail>\n<details>\n<summary>别曲\n  [<a href=\"https://music.163.com/#/song?id=29005200\">NetEase</a>]\n</summary>\n</details>\n<details>\n<summary>风姿物语·织田香·烈焰蝶\n  [<a href=\"https://music.163.com/#/song?id=233690\">NetEase</a>]\n</summary>\n</details>\n<details>\n<summary>风姿物语·白起·寂寞棋\n  [<a href=\"https://music.163.com/#/song?id=29023391\">NetEase</a>]\n</summary>\n</details>\n<details>\n<summary>未还\n  [<a href=\"https://www.youtube.com/watch?v=HppmXSh0dAc\">YouTube</a>,\n  <a href=\"https://open.spotify.com/track/12eZTRWu170aZutMX9GF2u\">Spotify</a>,\n  <a href=\"https://music.163.com/#/song?id=1915569848\">NetEase</a>,\n  <a href=\"https://y.qq.com/n/ryqq/songDetail/004WAmvX0xT6EO\">QQ Music</a>]\n</summary>\n\n词：咚喃嘻\n笛子：水玥儿\n琵琶：乍雨初晴\n别的：河图\n\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">城门虚掩 街巷漠漠灯火倦 </span><br><span class=\"line\">更夫敲打 漏声慢酒旗眠 </span><br><span class=\"line\">月浣云纱 青石板路雨痕浅</span><br><span class=\"line\">梧桐秋风 劝别了离雁</span><br><span class=\"line\"></span><br><span class=\"line\">独蝉血喉声声老 薄翼赴关山</span><br><span class=\"line\">小宅门环生铜锈 瘦马肌骨寒</span><br><span class=\"line\">风吹盘烛眉妆淡 铜镜无心看</span><br><span class=\"line\">一绢相思呵手绣 画字绕情穿</span><br><span class=\"line\"></span><br><span class=\"line\">霜降沙场厚衣添</span><br><span class=\"line\">刀光勿落马蹄前</span><br><span class=\"line\">且递同心与凉月</span><br><span class=\"line\">早归故里看晴烟</span><br><span class=\"line\"></span><br><span class=\"line\">塞外边关 将军喝到第几坛 </span><br><span class=\"line\">烽火未熄 铠甲已葬千件</span><br><span class=\"line\">帐灯幽暗 一豆残烛寒月晚 </span><br><span class=\"line\">家书未寄 落叶淋荒山</span><br><span class=\"line\"></span><br><span class=\"line\">秋风吹煞千百里 峻岭覆平川</span><br><span class=\"line\">听闻沙埋衣冠冢 不见故人还</span><br><span class=\"line\">一瓢相思才饮尽 离恨又斟满</span><br><span class=\"line\">踩旧青石添双鬓 音书留梦传</span><br><span class=\"line\"></span><br><span class=\"line\">雨过江南携油伞 </span><br><span class=\"line\">暑絮飞逐减衣衫</span><br><span class=\"line\">月沉小楼锁低户</span><br><span class=\"line\">无病无忧长相欢</span><br><span class=\"line\"></span><br><span class=\"line\">柳风吹衣清愁散</span><br><span class=\"line\">温衾软梦余生慢</span><br><span class=\"line\">勿教相思摧肝肠</span><br><span class=\"line\">笑待世事尘心宽</span><br></pre></td></tr></table></figure>\n</details>\n<details>\n<summary>宝塔镇河妖\n  [<a href=\"https://5sing.kugou.com/yc/3773726.html\">5sing</a>,\n  <a href=\"https://www.youtube.com/watch?v=ceAP29gecvc\">YouTube</a>]\n</summary>\n\n<p>汐音社、河图 - 宝塔镇河妖<br>作词：finale<br>作曲：河图<br>编曲：河图<br>混音：小吴太太<br>和声：小吴太太<br>企划制作：汐音社<br>OP：齐鼓文化<br>景和二十七年<br>宝塔镇有妖闻于天下</p>\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">或许梦境从来没有预兆，柳下你撑纸伞笑得娇俏，</span><br><span class=\"line\">春雨当头浇，淋湿光阴又煽起我心跳</span><br><span class=\"line\">独自徘徊走过回忆的桥，塔前游客如织说着祝祷，</span><br><span class=\"line\">春风里拥抱，世间情人能有几对偕老</span><br><span class=\"line\">仿佛十年一觉，我还记得那个平凡清早，</span><br><span class=\"line\">看天降神谕上，写镇字多寂寥，多少荒唐世人不知道</span><br><span class=\"line\">伶仃身 素衣袍，天上云逐飞鸟，我许过你暮暮与朝朝</span><br><span class=\"line\">离别河 殊途桥，塔下门封印烙，你我余生从此不相交</span><br><span class=\"line\">风雨渺 青烟飘，向鬼神借一秒，抚过当时你含泪眼角</span><br><span class=\"line\">心火点 魂灯照，用来生换今宵，花好月圆我和你相邀</span><br><span class=\"line\"></span><br><span class=\"line\">独自徘徊走过回忆的桥，塔前游客如织说着祝祷</span><br><span class=\"line\">春风里拥抱，世间情人能有几对偕老</span><br><span class=\"line\">仿佛十年一觉，我还记得那个平凡清早</span><br><span class=\"line\">看天降神谕上，写镇字多寂寥，多少荒唐世人不知道</span><br><span class=\"line\">伶仃身 素衣袍，天上云逐飞鸟，我许过你暮暮与朝朝</span><br><span class=\"line\">离别河 殊途桥，塔下门封印烙，你我余生从此不相交</span><br><span class=\"line\">风雨渺 青烟飘，向鬼神借一秒，抚过当时你含泪眼角</span><br><span class=\"line\">心火点 魂灯照，用来生换今宵，花好月圆我和你相邀</span><br><span class=\"line\"></span><br><span class=\"line\">伶仃身 素衣袍，天上云逐飞鸟，我许过你暮暮与朝朝</span><br><span class=\"line\">离别河 殊途桥，塔下门封印烙，你我余生从此不相交</span><br><span class=\"line\">风雨渺 青烟飘，向鬼神借一秒，抚过当时你含泪眼角</span><br><span class=\"line\">心火点 魂灯照，用来生换今宵，花好月圆我和你相邀</span><br></pre></td></tr></table></figure>\n</details>\n<details>\n<summary>惘然记\n</summary>\n\n<p>惘然记 - 河图<br>词：Finale<br>曲：河图<br>编曲：河图<br>笛子：笛呆子囚牛<br>和声&#x2F;混音：小吴太太</p>\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">当白露遗忘昨日蒹葭</span><br><span class=\"line\">当明镜磨平了旧岁伤疤</span><br><span class=\"line\">当我倦了 骑马去天涯</span><br><span class=\"line\">当孤村作客点点寒鸦</span><br><span class=\"line\">当流水眷恋上桥畔落花</span><br><span class=\"line\">当你笑了 我带你回家</span><br><span class=\"line\"></span><br><span class=\"line\">这古来传奇太多飞蛾扑火</span><br><span class=\"line\">是九死未悔 又或千金一诺 我明白什么</span><br><span class=\"line\">书中纸上的那些缱绻笔墨</span><br><span class=\"line\">每篇皆是我 看过一朵笑涡 便终日消磨</span><br><span class=\"line\"></span><br><span class=\"line\">恨我多情善感生白发 也恨我负心薄幸无牵挂</span><br><span class=\"line\">意浓时千般皆佳 转身却遗忘刹那 镜中人不说话</span><br><span class=\"line\">原来前因后缘梦里花 到头来神仙眷侣终虚话</span><br><span class=\"line\">我丢失的那颗心 沉睡在哪片黄沙 唤千次不回答</span><br><span class=\"line\"></span><br><span class=\"line\">当春风辞别窗外桃花</span><br><span class=\"line\">当烈火焚尽了匣中书画</span><br><span class=\"line\">当我醉了 骑马去天涯</span><br><span class=\"line\">当月光暗了记忆年华</span><br><span class=\"line\">当长夜已覆满纷扬雪花</span><br><span class=\"line\">当你睡了 我带你回家</span><br><span class=\"line\"></span><br><span class=\"line\">这红尘故事太多有花无果</span><br><span class=\"line\">自无话不说 终于无话可说 我失去什么</span><br><span class=\"line\">世间游荡的那些孤魂野魄</span><br><span class=\"line\">是否也像我 错过一个渡口 便无处停泊</span><br><span class=\"line\"></span><br><span class=\"line\">恨我未解相思生白发 也恨我负心薄幸无牵挂</span><br><span class=\"line\">意浓时千般皆佳 转身却遗忘刹那 镜中人不说话</span><br><span class=\"line\">原来前因后缘梦里花 到头来神仙眷侣终虚话</span><br><span class=\"line\">我丢失的那颗心 沉睡在哪片黄沙 唤千次不回答</span><br><span class=\"line\"></span><br><span class=\"line\">恨我未解相思生白发 也恨我负心薄幸无牵挂</span><br><span class=\"line\">意浓时千般皆佳 转身却遗忘刹那 镜中人不说话</span><br><span class=\"line\">原来前因后缘梦里花 到头来神仙眷侣终虚话</span><br><span class=\"line\">我丢失的那颗心 沉睡在哪片黄沙 唤千次不回答</span><br></pre></td></tr></table></figure>\n</details>\n-->\n\n\n\n\n<br>\n<!--\n<iframe src=\"//player.bilibili.com/player.html?aid=1711338&bvid=BV1mx411P7QR&cid=2613005&page=1?rel=0&amp;autoplay=0\" width=\"750px\" height=\"560px\" scrolling=\"no\" border=\"0\" frameborder=\"no\" framespacing=\"0\" allowfullscreen=\"true\"> </iframe>\n-->\n<iframe src=\"//player.bilibili.com/player.html?aid=1711338&bvid=BV1mx411P7QR&cid=2613005&page=1?rel=0&amp;autoplay=0\" width=\"576px\" height=\"370px\" scrolling=\"no\" border=\"0\" frameborder=\"no\" framespacing=\"0\" allowfullscreen=\"true\"> </iframe>\n\n\n\n","categories":["似此星辰"],"tags":["Music"]},{"title":"深度学习框架常用命令","url":"https://eustomaqua.github.io/2021/2021-01-03-DeepLearning-Commands/","content":"<link rel=\"stylesheet\" class=\"aplayer-secondary-style-marker\" href=\"/assets/css/APlayer.min.css\"><script src=\"/assets/js/APlayer.min.js\" class=\"aplayer-secondary-script-marker\"></script><!--\ncategories:\n  - Coding\ntags:\n  - Notes\n  - TensorFlow\n  - PyTorch\n  - NVIDIA\n-->\n<!--\n2021/1/15 14:42pm Fri\nTag: NVIDIA CUDA\nCategory: Programming\n-->\n\n<h1 id=\"CUDA\"><a href=\"#CUDA\" class=\"headerlink\" title=\"CUDA\"></a>CUDA</h1><p>查看本机是否能使用GPU</p>\n<h2 id=\"TensorFlow\"><a href=\"#TensorFlow\" class=\"headerlink\" title=\"TensorFlow\"></a>TensorFlow</h2><p>tensorflow 1.x</p>\n<figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"keyword\">import</span> tensorflow <span class=\"keyword\">as</span> tf</span><br><span class=\"line\">sess = tf.Session(config=tf.ConfigProto(log_device_placement=<span class=\"literal\">True</span>))</span><br><span class=\"line\"><span class=\"comment\"># 查看日志信息若包含gpu信息，就是使用了gpu。</span></span><br></pre></td></tr></table></figure>\n\n<p>tensorflow 2.x</p>\n<figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"keyword\">import</span> tensorflow <span class=\"keyword\">as</span> tf</span><br><span class=\"line\">tf.test.is_gpu_available()</span><br><span class=\"line\"><span class=\"comment\"># True if 可用</span></span><br></pre></td></tr></table></figure>\n\n<p>测试时若想禁用 GPU</p>\n<figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"keyword\">import</span> os</span><br><span class=\"line\">os.environ[<span class=\"string\">&quot;CUDA_VISIBLE_DEVICES&quot;</span>]=<span class=\"string\">&quot;-1&quot;</span>    </span><br><span class=\"line\"><span class=\"keyword\">import</span> tensorflow <span class=\"keyword\">as</span> tf</span><br></pre></td></tr></table></figure>\n\n<p><strong>Refs:</strong><br><a href=\"https://blog.csdn.net/sunshine2124ch/article/details/103127551\">Tensorflow中查看gpu是否可用</a><br><a href=\"https://blog.csdn.net/castle_cc/article/details/78389082\">检测tensorflow是否使用gpu进行计算</a><br><a href=\"https://blog.csdn.net/renhaofan/article/details/81987728\">查看tensorflow是否支持GPU，以及测试程序</a><br><a href=\"https://blog.csdn.net/qq_35203425/article/details/92579381\">tensorflow-gpu版禁用GPU</a><br><a href=\"https://blog.csdn.net/freewebsys/article/details/81277857\">TensorFlow（5）：使用tensorflow-gpu版本测试下学习速度，cpu（3分钟） vs gpu（4秒）</a>  </p>\n<h2 id=\"PyTorch\"><a href=\"#PyTorch\" class=\"headerlink\" title=\"PyTorch\"></a>PyTorch</h2><p>pytorch</p>\n<figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"keyword\">import</span> torch</span><br><span class=\"line\">torch.cuda.is_available()  <span class=\"comment\">#   # cuda是否可用</span></span><br><span class=\"line\">torch.cuda.device_count()  <span class=\"comment\">#   # 返回gpu数量</span></span><br><span class=\"line\">torch.cuda.get_device_name(<span class=\"number\">0</span>)  <span class=\"comment\"># 返回gpu名字，设备索引默认从0开始</span></span><br><span class=\"line\"><span class=\"comment\"># torch.cuda.get_device_capability()</span></span><br><span class=\"line\">torch.cuda.current_device()  <span class=\"comment\"># # 返回当前设备索引</span></span><br></pre></td></tr></table></figure>\n\n<p><strong>Refs:</strong><br><a href=\"https://blog.csdn.net/nima1994/article/details/83001910\">pytorch中查看gpu信息</a>  </p>\n<p>为什么将数据转移至GPU的方法叫做.cuda而不是.gpu，就像将数据转移至CPU调用的方法是.cpu？这是因为GPU的编程接口采用CUDA，而目前并不是所有的GPU都支持CUDA，只有部分Nvidia的GPU才支持。PyTorch未来可能会支持AMD的GPU，而AMD GPU的编程接口采用OpenCL，因此PyTorch还预留着.cl方法，用于以后支持AMD等的GPU。</p>\n<h2 id=\"NVIDIA-环境变量-desktop\"><a href=\"#NVIDIA-环境变量-desktop\" class=\"headerlink\" title=\"NVIDIA + 环境变量 desktop\"></a>NVIDIA + 环境变量 desktop</h2><p>跑计算量大的代码，通过 nvidia-smi 命令查看gpu的内存使用量。</p>\n<p>Windows 下需在 <code>path</code> 中添加如下路径 (<code>C:\\Program Files\\NVIDIA Corporation\\NVSMI</code>) 才可以直接在 cmd 中使用 <code>nvidia-smi</code>, <code>nvdebugdump --list</code>, <code>nvidia-smi -h</code> 等命令，最后一个命令用来查看更多使用方式。  </p>\n<figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">λ nvdebugdump --list</span><br><span class=\"line\">Found 1 NVIDIA devices</span><br><span class=\"line\">    Device ID:          0</span><br><span class=\"line\">    Device name:        GeForce RTX 2060 (*PrimaryCard)</span><br><span class=\"line\">    GPU internal ID:    GPU-????????-????-????-????-????????????</span><br><span class=\"line\">λ nvidia-smi</span><br></pre></td></tr></table></figure>\n\n<ul>\n<li><code>Fan</code>：显示风扇转速，数值在0到100%之间，是计算机的期望转速，如果计算机不是通过风扇冷却或者风扇坏了，显示出来就是N&#x2F;A；</li>\n<li><code>Temp</code>：显卡内部的温度，单位是摄氏度；</li>\n<li><code>Perf</code>：表征性能状态，从P0到P12，P0表示最大性能，P12表示状态最小性能；</li>\n<li><code>Pwr</code>：能耗表示；</li>\n<li><code>Bus-Id</code>：涉及GPU总线的相关信息；</li>\n<li><code>Disp.A</code>：是Display Active的意思，表示GPU的显示是否初始化；</li>\n<li><code>Memory Usage</code>：显存的使用率；</li>\n<li><code>Volatile GPU-Util</code>：浮动的GPU利用率；</li>\n<li><code>Compute M</code>：计算模式；</li>\n</ul>\n<p><strong>Refs:</strong><br><a href=\"https://blog.csdn.net/nima1994/article/details/79698102\">windows使用nvidia-smi查看gpu信息</a>  </p>\n<p>在实际中，我添加的环境变量分别如下：</p>\n<ul>\n<li>系统变量 Path<figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v10.1\\bin</span><br><span class=\"line\">C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v10.1\\libnvvp</span><br><span class=\"line\">C:\\Program Files (x86)\\NVIDIA\\Corporation\\PhysX\\Common</span><br><span class=\"line\">C:\\Program Files\\NVIDIA Corporation\\NVIDIA NvDLISR</span><br><span class=\"line\">C:\\Program Files\\NVIDIA Corporation\\Nsight Compute 2019.4.0\\</span><br><span class=\"line\"></span><br><span class=\"line\">C:\\Program Files\\Java\\jdk-15.0.1\\bin</span><br><span class=\"line\">C:\\Program Files\\Common Files\\Oracle\\Java\\javapath</span><br><span class=\"line\">C:\\Program Files (x86)\\Common Files\\Oracle\\Java\\javapath</span><br><span class=\"line\">C:\\Program Files\\Java\\jre1.8.0_271\\bin</span><br><span class=\"line\">C:\\Program Files\\Java\\jre1.8.0_271\\jre\\bin</span><br><span class=\"line\"></span><br><span class=\"line\">C:\\Windows\\System32\\OpenSSH\\</span><br><span class=\"line\">C:\\Program Files (x86)\\Bitvise SSH Client</span><br><span class=\"line\">C:\\Program Files\\Git\\cmd</span><br></pre></td></tr></table></figure></li>\n<li>用户变量 Path<figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">C:\\Users\\Lenovo\\AppData\\Local\\Anaconda3</span><br><span class=\"line\">C:\\Users\\Lenovo\\AppData\\Local\\Anaconda3\\Library\\mingw-w64\\bin</span><br><span class=\"line\">C:\\Users\\Lenovo\\AppData\\Local\\Anaconda3\\Library\\usr\\bin</span><br><span class=\"line\">C:\\Users\\Lenovo\\AppData\\Local\\Anaconda3\\Library\\bin</span><br><span class=\"line\">C:\\Users\\Lenovo\\AppData\\Local\\Anaconda3\\Scripts</span><br><span class=\"line\"><span class=\"meta prompt_\"></span></span><br><span class=\"line\"><span class=\"meta prompt_\">%</span><span class=\"language-bash\">USERPROFILE%\\AppData\\Local\\Microsoft\\WindowsApps</span></span><br><span class=\"line\">C:\\Users\\Lenovo\\AppData\\Local\\cmder</span><br><span class=\"line\"><span class=\"meta prompt_\">%</span><span class=\"language-bash\">PyCharm Community Edition%</span></span><br><span class=\"line\">C:\\Users\\Lenovo\\AppData\\Local\\Programs\\Microsoft VS Code\\bin</span><br><span class=\"line\"></span><br><span class=\"line\">D:\\Software\\mingw64\\bin</span><br><span class=\"line\">D:\\Software\\cmake-3.19.1\\bin</span><br><span class=\"line\">D:\\Software\\opencv\\build\\x64\\vc15\\bin</span><br><span class=\"line\">D:\\Software\\opencv\\build_x64_mingw\\bin</span><br><span class=\"line\">D:\\Software\\opencv\\build_x64_mingw\\install\\x64\\mingw\\bin</span><br><span class=\"line\">D:\\Software\\opencv\\build_x64_mingw\\install\\include</span><br></pre></td></tr></table></figure></li>\n<li>系统变量 其他<ul>\n<li><code>CLASSPATH</code>: <code>.;%JAVA_HOME%\\bin;%JAVA_HOME%\\lib\\dt.jar;%JAVA_HOME%\\lib\\tools.jar</code></li>\n<li><code>JAVA_HOME</code>: <code>C:\\Program Files\\Java\\jre1.8.0_271</code></li>\n<li><code>CUDA_PATH</code>: <code>C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v10.1</code></li>\n<li><code>CUDA_PATH_V10_1</code>: <code>C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v10.1</code></li>\n<li><code>DriverData</code>: <code>C:\\Windows\\System32\\Drivers\\DriverData</code></li>\n<li><code>NVCUDASAMPLES_ROOT</code>: <code>C:\\ProgramData\\NVIDIA Corporation\\CUDA Samples\\v10.1</code></li>\n<li><code>NVCUDASAMPLES10_1_ROOT</code>: <code>C:\\ProgramData\\NVIDIA Corporation\\CUDA Samples\\v10.1</code></li>\n<li><code>NVTOOLSEXT_PATH</code>: <code>C:\\Program Files\\NVIDIA Corporation\\NvToolsExt\\</code></li>\n</ul>\n</li>\n<li>用户变量 其他<ul>\n<li><code>PyCharm Community Edition</code>: <code>C:\\Program Files\\JetBrains\\PyCharm Community Edition 2020.3\\bin;</code></li>\n<li><code>TEMP</code>: <code>C:\\Users\\Lenovo\\AppData\\Local\\Temp</code></li>\n<li><code>TMP</code>: <code>C:\\Users\\Lenovo\\AppData\\Local\\Temp</code></li>\n</ul>\n</li>\n</ul>\n<h2 id=\"查看CUDA版本\"><a href=\"#查看CUDA版本\" class=\"headerlink\" title=\"查看CUDA版本\"></a>查看CUDA版本</h2><figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">λ nvcc --version</span><br><span class=\"line\">λ nvcc -V</span><br><span class=\"line\"></span><br><span class=\"line\">nvcc: NVIDIA (R) Cuda compiler driver</span><br><span class=\"line\">Copyright (c) 2005-2019 NVIDIA Corporation</span><br><span class=\"line\">Built on Sun_Jul_28_19:12:52_Pacific_Daylight_Time_2019</span><br><span class=\"line\">Cuda compilation tools, release 10.1, V10.1.243</span><br></pre></td></tr></table></figure>\n\n<p><strong>Refs:</strong><br><a href=\"https://blog.csdn.net/huplion/article/details/80919579\">Windows查看CUDA版本</a>  </p>\n<h2 id=\"Match-TF-with-CUDA\"><a href=\"#Match-TF-with-CUDA\" class=\"headerlink\" title=\"Match TF with CUDA\"></a>Match TF with CUDA</h2><p><a href=\"https://www.tensorflow.org/install/source_windows?hl=zh_cn#tensorflow_2x\">Tensorflow 从源代码构建</a><br>经过测试的构建配置 (第2-4列中的空白说明与同列上一行相同)  </p>\n<table>\n<thead>\n<tr>\n<th>Version</th>\n<th>Python</th>\n<th>Compiler</th>\n<th>构建工具</th>\n<th>cuDNN</th>\n<th>CUDA</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>TFGpu 1.0.0</td>\n<td>3.5</td>\n<td>MSVC 2015 update 3</td>\n<td>Cmake v3.6.3</td>\n<td>5.1</td>\n<td>8</td>\n</tr>\n<tr>\n<td>TFGpu 1.1.0</td>\n<td></td>\n<td></td>\n<td></td>\n<td>5.1</td>\n<td>8</td>\n</tr>\n<tr>\n<td>TFGpu 1.2.0</td>\n<td>3.5-3.6</td>\n<td></td>\n<td></td>\n<td>5.1</td>\n<td>8</td>\n</tr>\n<tr>\n<td>TFGpu 1.3.0</td>\n<td></td>\n<td></td>\n<td></td>\n<td>6</td>\n<td>8</td>\n</tr>\n<tr>\n<td>TFGpu 1.4.0</td>\n<td></td>\n<td></td>\n<td></td>\n<td>6</td>\n<td>8</td>\n</tr>\n<tr>\n<td>TFGpu 1.5.0</td>\n<td></td>\n<td></td>\n<td></td>\n<td>7</td>\n<td>9</td>\n</tr>\n<tr>\n<td>TFGpu 1.6.0</td>\n<td></td>\n<td></td>\n<td></td>\n<td>7</td>\n<td>9</td>\n</tr>\n<tr>\n<td>TFGpu 1.7.0</td>\n<td></td>\n<td></td>\n<td></td>\n<td>7</td>\n<td>9</td>\n</tr>\n<tr>\n<td>TFGpu 1.8.0</td>\n<td></td>\n<td></td>\n<td></td>\n<td>7</td>\n<td>9</td>\n</tr>\n<tr>\n<td>TFGpu 1.9.0</td>\n<td></td>\n<td></td>\n<td></td>\n<td>7</td>\n<td>9</td>\n</tr>\n<tr>\n<td>TFGpu 1.10.0</td>\n<td></td>\n<td></td>\n<td></td>\n<td>7</td>\n<td>9</td>\n</tr>\n<tr>\n<td>TFGpu 1.11.0</td>\n<td></td>\n<td></td>\n<td>Bazel 0.15.0</td>\n<td>7</td>\n<td>9</td>\n</tr>\n<tr>\n<td>TFGpu 1.12.0</td>\n<td></td>\n<td></td>\n<td></td>\n<td>7</td>\n<td>9</td>\n</tr>\n<tr>\n<td>TFGpu 1.13.0</td>\n<td>3.5-3.7</td>\n<td></td>\n<td>Bazel 0.19.0-0.21.0</td>\n<td>7.4</td>\n<td>10</td>\n</tr>\n<tr>\n<td>TFGpu 1.14.0</td>\n<td></td>\n<td>MSVC 2017</td>\n<td>Bazel 0.24.1-0.25.2</td>\n<td>7.4</td>\n<td>10</td>\n</tr>\n<tr>\n<td>TFGpu 1.15.0</td>\n<td></td>\n<td></td>\n<td>Bazel 0.26.1</td>\n<td>7.4</td>\n<td>10</td>\n</tr>\n<tr>\n<td>TFGpu 2.0.0</td>\n<td></td>\n<td></td>\n<td></td>\n<td>7.4</td>\n<td>10</td>\n</tr>\n<tr>\n<td>TFGpu 2.1.0</td>\n<td></td>\n<td>MSVC 2019</td>\n<td>Bazel 0.27.1-0.29.1</td>\n<td>7.4</td>\n<td>10.1</td>\n</tr>\n<tr>\n<td>TFGpu 2.2.0</td>\n<td>3.5-3.8</td>\n<td></td>\n<td>Bazel 2.0.0</td>\n<td>7.4</td>\n<td>10.1</td>\n</tr>\n<tr>\n<td>TFGpu 2.3.0</td>\n<td></td>\n<td></td>\n<td>Bazel 3.1.0</td>\n<td>7.4</td>\n<td>10.1</td>\n</tr>\n</tbody></table>\n<h2 id=\"Windows-10-下卸载重装\"><a href=\"#Windows-10-下卸载重装\" class=\"headerlink\" title=\"Windows 10 下卸载重装\"></a>Windows 10 下卸载重装</h2><h3 id=\"查看-CUDA-cuDNN-的版本\"><a href=\"#查看-CUDA-cuDNN-的版本\" class=\"headerlink\" title=\"查看 CUDA+cuDNN 的版本\"></a>查看 CUDA+cuDNN 的版本</h3><p><strong>Windows 10</strong>  </p>\n<ul>\n<li>进入 CUDA 安装目录, 即 <code>C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA</code><figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">nvcc --version</span><br><span class=\"line\"><span class=\"meta prompt_\"># </span><span class=\"language-bash\">nvcc -V</span></span><br></pre></td></tr></table></figure></li>\n<li>查看 cuDNN, 进入 <code>C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v10.0\\include\\cudnn.h</code>, ctrl+F 检索 CUDNN_MAJOR</li>\n</ul>\n<p><strong>Ubuntu</strong></p>\n<figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">cd</span> ~/Software/cuda-10.?</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">cat</span> version.txt</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">cat</span> include/cudnn.h | grep CUDNN_MAJOR -A2</span></span><br></pre></td></tr></table></figure>\n\n<p>或使用 <strong>PyTorch</strong> 查看</p>\n<figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">import torch</span><br><span class=\"line\">print(torch.__version__)</span><br><span class=\"line\">print(torch.version.cuda)</span><br><span class=\"line\">print(torch.backends.cudnn.version())</span><br></pre></td></tr></table></figure>\n\n<p>Comparison</p>\n<table>\n<thead>\n<tr>\n<th>Operation System</th>\n<th>CUDA</th>\n<th>cuDNN</th>\n<th>TensorFlow-GPU</th>\n<th>Dont work</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>Windows 10 laptop</td>\n<td>10.0.130</td>\n<td>7.4.1</td>\n<td>tf 2.0.0</td>\n<td>tf 2.1.0</td>\n</tr>\n<tr>\n<td>Windows10 laptop*</td>\n<td>10.1.243</td>\n<td>7.6.5</td>\n<td>tf 2.0.0, 2.1.0</td>\n<td></td>\n</tr>\n<tr>\n<td>Windows 10 desktop</td>\n<td>10.1.243</td>\n<td>7.6.5</td>\n<td>tf 2.1.0</td>\n<td></td>\n</tr>\n<tr>\n<td>Ubuntu 16.04&#x2F;18.04</td>\n<td>10.0.130</td>\n<td>7.6.4</td>\n<td>tf 2.1.0, 1.14.0</td>\n<td></td>\n</tr>\n</tbody></table>\n<ul>\n<li>tensorflow-gpu 2.0.0<ul>\n<li>Python 3.6.5 (Anaconda3 5.2.0 64-bit)</li>\n<li>CUDA 10.0 + cuDNN 7.4.1</li>\n<li>tensorboard 2.0.2</li>\n<li>tensorflow-estimator 2.0.1</li>\n<li>tensorflow-gpu 2.0.0</li>\n<li>UPDATE: after cuda 10.1, cudnn 7.6.5<figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"meta prompt_\">&gt;</span><span class=\"language-bash\">&gt;&gt; import tensorflow as tf</span></span><br><span class=\"line\">C:\\Users\\Lenovo\\Anaconda3\\lib\\site-packages\\numpy\\_distributor_init.py:32: UserWarning: loaded more than 1 DLL from .libs:</span><br><span class=\"line\">C:\\Users\\Lenovo\\Anaconda3\\lib\\site-packages\\numpy\\.libs\\libopenblas.NOIJJG62EMASZI6NYURL6JBKM4EVBGM7.gfortran-win_amd64.dll</span><br><span class=\"line\">C:\\Users\\Lenovo\\Anaconda3\\lib\\site-packages\\numpy\\.libs\\libopenblas.PYQHXLVVQ7VESDPUVUADXEVJOBGHJPAY.gfortran-win_amd64.dll</span><br><span class=\"line\">stacklevel=1)</span><br><span class=\"line\">2021-01-05 13:24:03.251532: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library &#x27;cudart64_100.dll&#x27;; dlerror: cudart64_100.dll not found</span><br><span class=\"line\"><span class=\"meta prompt_\">&gt;</span><span class=\"language-bash\">&gt;&gt; tf.__version__</span></span><br><span class=\"line\">&#x27;2.0.0&#x27;</span><br><span class=\"line\"><span class=\"meta prompt_\">&gt;</span><span class=\"language-bash\">&gt;&gt; ^Z</span></span><br></pre></td></tr></table></figure></li>\n</ul>\n</li>\n<li>tensorflow-gpu 2.1.0<ul>\n<li>Python 3.7.0 (Anaconda3 5.3.1 64-bit)</li>\n<li>CUDA 10.1 + cuDNN 7.6.5</li>\n<li>tensorboard 2.1.1</li>\n<li>tensorflow-gpu 2.1.0</li>\n<li>tensorflow-gpu-estimator 2.1.0<figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"meta prompt_\">&gt;</span><span class=\"language-bash\">&gt;&gt; import tensorflow as tf</span></span><br><span class=\"line\">2021-01-05 16:28:30.524528: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_101.dll</span><br><span class=\"line\"><span class=\"meta prompt_\">&gt;</span><span class=\"language-bash\">&gt;&gt; tf.test.is_gpu_available()</span></span><br><span class=\"line\">WARNING:tensorflow:From &lt;stdin&gt;:1: is_gpu_available (from tensorflow.python.framework.test_util) is deprecated and will be removed in a future version.</span><br><span class=\"line\">Instructions for updating:</span><br><span class=\"line\">Use `tf.config.list_physical_devices(&#x27;GPU&#x27;)` instead.</span><br><span class=\"line\">....</span><br></pre></td></tr></table></figure></li>\n</ul>\n</li>\n</ul>\n<p>注意 TF2.1 在 Win10+ CUDA 10.1+cuDNN 7.6.5 下又出幺蛾子了，</p>\n<ul>\n<li>安装后会出现一个 <code>ImportError: DLL load failed: 找不到指定的模块</code> 的报错，这是因为没有安装 VS2019 的两个组件，不用安装整个 VS2019 community ，只要安装两个就行，即<ul>\n<li>Microsoft Visual C++ 2015-2019 Redistributable (x64)</li>\n<li>Microsoft Visual C++ 2015-2019 Redistributable (x64)</li>\n</ul>\n</li>\n<li>解决方法：在 <a href=\"https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads\">官网</a> 下载 <code>Visual Studio 2015, 2017 and 2019</code>，即<ul>\n<li>x86: <code>vc_redist.x86.exe</code></li>\n<li>x64: <code>vc_redist.x64.exe</code></li>\n</ul>\n</li>\n</ul>\n<p>第一次测试 TF2.1 是否能用 GPU 时，会卡在 Add to gpu 类似的一个语句处很长时间。我查阅资料据说这是第一次执行的正常情况，耐心等待即可。<br>我曾试过用 pytorch 检查，但是 pip install pytorch 1.7<code>.&#123;1?0&#125;</code> 之后发现 <code>torch.cuda.is_available()</code> 结果是 False，尝试安装 1.6.0 一直因网络问题报错，所以最后使用了 conda 来安装 1.4.0 ，安装语句为 </p>\n<figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">λ conda install pytorch==1.4.0 torchvision==0.5.0 cudatoolkit=10.1 -c pytorch</span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"comment\"># conda update &lt;package-name&gt;</span></span></span><br></pre></td></tr></table></figure>\n<p>安装过程中尝试了 TF2.1 的测试，成功，随后测试 torch，结果为 True。</p>\n<h3 id=\"CUDA-cuDNN-卸载重装\"><a href=\"#CUDA-cuDNN-卸载重装\" class=\"headerlink\" title=\"CUDA, cuDNN 卸载重装\"></a>CUDA, cuDNN 卸载重装</h3><p>cuDNN本来就只是将文件拷贝进CUDA的安装目录，故删除即可（卸载CUDA后直接删除整个文件夹也可以）<br>CUDA的卸载：控制面板-卸载程序（不要用360等杀毒软件，找不到对应程序的），按照安装时间排序，最上面这几个带版本号的，就是刚才安装的CUDA了，挨个卸载即可  </p>\n<!-- <img src=\"https://img-blog.csdnimg.cn/20190407161507623.png\" width=\"80%\"> -->\n<img src=\"/images/2024-12/20190407161507623.png\" width=\"80%\">\n<img src=\"/images/2021-01/0105_CUDA10.0_reinstall.png\" width=\"80%\">\n\n<p>CUDA 10.0 我好像是默认选项装的全部。<br>所以刚才卸载时把 2020&#x2F;1&#x2F;18 安装的所有 NVIDIA 相关全部删了。<br>除了这两个 <code>NVIDIA 图形驱动程序</code> 和 <code>NVIDIA PhysX 系统软件</code> 之外，其他都删掉，如图所示</p>\n<!-- <img src=\"https://img-blog.csdnimg.cn/20200307194357123.png\" width=\"80%\"> -->\n<img src=\"/images/2024-12/20200307194357123.png\" width=\"80%\">\n之后可以清理下注册表，保险起见可以重启，但好像不重启也挺好？\n\n<p><strong>Important!</strong><br><a href=\"https://blog.csdn.net/HollrayChan/article/details/96310636\">Windows版本CUDA、CUDNN与英伟达驱动安装教程</a><br><a href=\"https://blog.csdn.net/XunCiy/article/details/89070315\">Win10中CUDA、cuDNN的安装与卸载</a>  </p>\n<p><strong>0. Preparation</strong></p>\n<ul>\n<li>(1) 检查 NVIDIA 显卡驱动<br>检查显卡驱动是否安装及其版本，避免与 CUDA 不兼容而安装失败。<ul>\n<li>(1a) 在 NVIDIA 官网下载显卡驱动并安装</li>\n<li>(1b) 在桌面点击鼠标右键，打开 NVIDIA 控制面板，界面如下<img src=\"/images/2021-01/0105_NVIDIA_control.png\" width=\"80%\">\n这个代表电脑显卡能支持的 cuda 最大版本</li>\n</ul>\n</li>\n<li>(2) 下载 CUDA 和 cuDNN<br>下载相应的 CUDA (包含的 patch 补丁最好全部都下载), 以及对应的 cuDNN (cuDNN 是 CUDA 的扩展加速库，说白了还是补丁), cuDNN 需要注册 NVIDIA 账号。<br>CUDA： <a href=\"https://developer.nvidia.com/cuda-toolkit-archive\">https://developer.nvidia.com/cuda-toolkit-archive</a><br>cudnn：<a href=\"https://developer.nvidia.com/rdp/cudnn-download\">https://developer.nvidia.com/rdp/cudnn-download</a><br>安装步骤<ul>\n<li>(2a) 先安装 CUDA，然后按照顺序安装补丁，期间按照提示重启电脑</li>\n<li>(2b) 安装完之后打开 cuDNN，把其中的文件复制到如下文件夹，使得 CUDA 可以调用到 cuDNN 加速库，路径如下 (尽量按照默认，否则文件一乱之后难以管理)<br><code>C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v10.1\\bin</code><br><code>C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v10.1\\include</code><br><code>C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v10.1\\lib\\x64</code></li>\n<li>(2c) 将 <code>C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v10.1\\bin</code>, 即安装后的 bin 路径添加到环境变量，输入 <code>nvcc -V</code> 检测安装情况，成功后会提示版本</li>\n</ul>\n</li>\n</ul>\n<p><strong>1. 安装 CUDA</strong></p>\n<ul>\n<li>(4) cuda 安装选项不要选默认的“精简”，因为这是所有的全家桶。<br>主要是因为里面有一个东西的安装会一直导致安装失败。<!-- <img src=\"https://img-blog.csdnimg.cn/2019040715251354.png\" width=\"60%\"> -->\n<img src=\"/images/2024-12/2019040715251354.png\" width=\"60%\">\n特别是这个 Visual Studio Integration 千万不能选！\n<!-- <img src=\"https://img-blog.csdnimg.cn/2019040715270168.png\" width=\"60%\"> -->\n<img src=\"/images/2024-12/2019040715270168.png\" width=\"60%\">\n选择以下的安装就够了\n<!-- <img src=\"https://img-blog.csdnimg.cn/20190407152642126.png\" width=\"60%\"> -->\n<img src=\"/images/2024-12/20190407152642126.png\" width=\"60%\">\n安装到 C 盘即可，方便以后的路径等\n<!-- <img src=\"https://img-blog.csdnimg.cn/20190407152738412.png\" width=\"60%\"> -->\n<img src=\"/images/2024-12/20190407152738412.png\" width=\"60%\"></li>\n<li>(5) 安装成功<!-- <img src=\"https://img-blog.csdnimg.cn/20190407152806986.png\" width=\"60%\">\n<img src=\"https://img-blog.csdnimg.cn/2019040715282075.png\" width=\"60%\"> -->\n<img src=\"/images/2024-12/20190407152806986.png\" width=\"60%\">\n<img src=\"/images/2024-12/2019040715282075.png\" width=\"60%\"></li>\n<li>Launch Samples: <code>C:\\ProgramData\\NVIDIA Corporation\\CUDA Samples\\v10.1</code><br>Launch Documents: <code>file:///C:/Program%20Files/NVIDIA%20GPU%20Computing%20Toolkit/CUDA/v10.1/doc/html/index.html</code></li>\n<li>(6) 验证安装成功<ul>\n<li>(6a) 环境变量应该已经自动加载好了<br>即系统变量中的 <code>CUDA_PATH</code>, <code>CUDA_PATH_v10_1</code></li>\n<li>(6b) cmd 里查看版本信息，<code>nvcc -V</code>, 得到 <code>release 10.1, V10.1.105</code><br>使用 CUDA 10.1 Update 2 会得到 <code>Cuda compilation tools, release 10.1, V10.1.243</code></li>\n<li>(6c) 进入到路径下后查看GPU运行时的监测界面<br>此时提示 <code>&#39;nvidia-smi&#39; 不是内部或外部命令，也不是可运行的程序或批处理文件。</code><br>说明需要修改环境变量，见上，修改系统环境变量 Path 后可能需要重启才能生效</li>\n</ul>\n</li>\n</ul>\n<p><strong>2. 安装 cuDNN</strong></p>\n<p>cuDNN 称不上安装，只需要将下载下来的压缩包解压后，将对应文件夹的文件放到 CUDA 安装路径下的对应文件夹里即可</p>\n<p>系统环境变量</p>\n<ul>\n<li>删掉 <code>CUDA_BIN_PATH</code>: <code>%CUDA_PATH%\\bin</code></li>\n<li>删掉 <code>CUDA_LIB_PATH</code>: <code>%CUDA_PATH%\\lib\\x64</code></li>\n<li>发现&#x2F;保留 <code>CUDA_PATH</code>: <code>C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v10.1</code></li>\n<li>发现&#x2F;保留 <code>CUDA_PATH</code>: <code>C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v10.1</code></li>\n<li>发现&#x2F;保留 <code>DriverData</code>: <code>C:\\Windows\\System32\\Drivers\\DriverData</code></li>\n<li>删除 <code>CUDA_SDK_BIN_PATH</code>: <code>%CUDA_SDK_PATH%\\bin\\win64</code></li>\n<li>删除 <code>CUDA_SDK_LIB_PATH</code>: <code>%CUDA_SDK_PATH%\\common\\lib\\x64</code></li>\n<li>删除 <code>CUDA_SDK_PATH</code>: <code>C:\\ProgramData\\NVIDIA Corporation\\CUDA Samples\\v10.0</code></li>\n<li>发现&#x2F;保留 <code>NUMBER_OF_PROCESSORS</code>: <code>4</code> &#x2F;&#x2F; <code>20</code> on desktop</li>\n<li>发现&#x2F;保留 <code>NVCUDASAMPLES_ROOT</code>: <code>C:\\ProgramData\\NVIDIA Corporation\\CUDA Samples\\v10.1</code></li>\n<li>发现&#x2F;保留 <code>NVCUDASAMPLES10_1_ROOT</code>: <code>C:\\ProgramData\\NVIDIA Corporation\\CUDA Samples\\v10.1</code></li>\n<li>仅台式机 <code>NVTOOLSEXT_PATH</code>: <code>C:\\Program Files\\NVIDIA Corporation\\NvToolsExt\\</code><br>系统环境变量 Path</li>\n<li>发现&#x2F;保留 <code>C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v10.1\\bin</code></li>\n<li>发现&#x2F;保留 <code>C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v10.1\\libnvvp</code></li>\n<li>删除 <code>C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v9.0\\lib\\x64</code></li>\n<li>删除 <code>C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v9.0\\common\\lib\\x64</code></li>\n<li>发现&#x2F;保留 <code>C:\\Program Files (x86)\\NVIDIA Corporation\\PhysX\\Common</code></li>\n<li>笔记本增加 <code>C:\\Program Files\\NVIDIA Corporation\\NVIDIA NvDLISR</code></li>\n<li>发现&#x2F;保留 <code>C:\\Program Files\\NVIDIA Corporation\\Nsight Compute 2019.4.0\\</code></li>\n</ul>\n<p>发现还是没有解决，于是在系统变量 Path 中</p>\n<ul>\n<li>增加 <code>C:\\Program Files\\NVIDIA Corporation\\NVSMI</code> </li>\n<li>重启系统后生效</li>\n</ul>\n<p>找到 CUDA 的安装路径，即 <code>C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v10.1</code><br>cuDNN 解压后是一个文件夹，即 <code>cuda</code>，把里面的三个文件夹和一个文件分别移动到对应位置即可</p>\n<h3 id=\"ImageNet-2012\"><a href=\"#ImageNet-2012\" class=\"headerlink\" title=\"ImageNet 2012\"></a>ImageNet 2012</h3><figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">wget &lt;imagenet-url&gt;</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">axel -n 10 &lt;imagenet-url&gt;</span></span><br></pre></td></tr></table></figure>\n\n<p>ImageNet 2010</p>\n<ul>\n<li>Connection 7 finished<br>Downloaded 123.9 Gigabyte in 35:37:10 hour(s). (1013.31 KB&#x2F;s)  </li>\n<li>Connection 0 finished<br>Downloaded 5.0 Gigabyte in 7:08:54 hour(s). (204.80 KB&#x2F;s)  </li>\n<li>Connection 8 finished<br>Downloaded 15.3 Gigabyte in 9:12:42 hour(s). (483.26 KB&#x2F;s)</li>\n</ul>\n<p>ImageNet 2012</p>\n<ul>\n<li>Connection 7 finished<br>Download 137.7 Gigabyte in 45:10:02 hour(s). (888.25 KB&#x2F;s)</li>\n<li>Connection 1 finished<br>Download 6.3 Gigabyte in 9:23:27 hour(s). (194.83 KB&#x2F;s)</li>\n<li>Connection 8 finished<br>Download 12.7 Gigabyte in 17:01:50 hour(s). (217.99 KB&#x2F;s)</li>\n<li>Downloaded<ul>\n<li>ILSVRC2012_img_test_v10102019.tar</li>\n<li>ILSVRC2012_img_val.tar</li>\n<li>ILSVRC2012_img_train.tar</li>\n</ul>\n</li>\n</ul>\n<figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">cd</span> GitHubLab <span class=\"comment\"># ls</span></span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">vim ILSVRC2012.sh</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">chmod</span> +x ILSVRC2012.sh</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">./ILSVRC2012.sh</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">vim proprocess_imagenet_validation_data.py</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">vim build_imagenet_data.py</span></span><br></pre></td></tr></table></figure>\n\n<h3 id=\"Search-Refs\"><a href=\"#Search-Refs\" class=\"headerlink\" title=\"Search Refs\"></a>Search Refs</h3><p><a href=\"https://blog.csdn.net/XunCiy/article/details/89070315\">Win10中CUDA、cuDNN的安装与卸载</a><br>cuda win 卸载后重启<br><a href=\"https://blog.csdn.net/BigData_Mining/article/details/104720481\">Win10卸载原有CUDA+安装新CUDA+cudnn</a><br><a href=\"https://www.geek-share.com/detail/2775909001.html\">win10 Nvidia CUDA 安装与再安装</a><br>win适用 cuda版本<br><a href=\"https://www.daimajiaoliu.com/daima/479568ec7900400\">Windows系统下安装多个版本cuda、cudnn，以及切换使用</a>  </p>\n<p>cuda 补丁 安装 win<br><a href=\"https://blog.csdn.net/HollrayChan/article/details/96310636\">Windows版本CUDA、CUDNN与英伟达驱动安装教程</a>  </p>\n<p>windows 查看 cuda cudnn 版本<br><a href=\"https://blog.csdn.net/m511655654/article/details/88419965\">查看cuda和cudnn版本win&amp;linux</a><br><a href=\"https://www.cnblogs.com/wuliytTaotao/p/11453265.html\">Linux 和 Windows 查看 CUDA 和 cuDNN 版本</a><br><a href=\"https://blog.csdn.net/wangpan007/article/details/106788268\">Windows 系统查看 CUDA 和 cuDNN 版本</a>  </p>\n<p>nvidia-smi 不是内部或外部命令<br><a href=\"https://blog.csdn.net/qq_41185868/article/details/108302470\">成功解决 nvidia-smi 不是内部或外部命令 也不是可运行的程序 或批处理文件</a><br><a href=\"https://blog.csdn.net/qq_40212975/article/details/89963016\">windows下直接输入nvidia-smi显示不是内部或外部命令也不是可运行的程序</a>  </p>\n<p>tensorflow 2.1, win, ImportError: DLL load failed: 找不到指定的模块。<br><a href=\"https://www.jianshu.com/p/9453e3aee05a\">Win10 安装 TensorFlow 2.1 出现 ImportError: DLL load failed 问题的解决</a><br><a href=\"https://github.com/tensorflow/tensorflow/issues/35749\">TensorFlow 2.1: ImportError: DLL load failed: The specified module could not be found.</a><br><a href=\"https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads\">The latest supported Visual C++ downloads</a><br><a href=\"https://www.pianshen.com/article/37381440114/\">安装TensorFlow后ImportError: DLL load failed: 找不到指定的模块。</a>  </p>\n<p>Adding visible gpu devices: 0<br>[tensorflow-gpu运行测试代码，卡在 I tensorflow&#x2F;core&#x2F;common_runtime&#x2F;gpu&#x2F;gpu_device.cc:1512] Adding visible gpu](<a href=\"https://blog.csdn.net/Msjiangmei/article/details/90695696\">https://blog.csdn.net/Msjiangmei/article/details/90695696</a>)<br><a href=\"https://github.com/tensorflow/tensorflow/issues/18652\">Bug: tensorflow-gpu takes long time before beginning to compute</a>  </p>\n<h2 id=\"Ubuntu-安装多版本-CUDA\"><a href=\"#Ubuntu-安装多版本-CUDA\" class=\"headerlink\" title=\"Ubuntu 安装多版本 CUDA\"></a>Ubuntu 安装多版本 CUDA</h2><h3 id=\"准备\"><a href=\"#准备\" class=\"headerlink\" title=\"准备\"></a>准备</h3><p>Ubuntu 查看版本信息 <a href=\"ubuntu%E5%A6%82%E4%BD%95%E6%9F%A5%E7%9C%8B%E7%89%88%E6%9C%AC%E4%BF%A1%E6%81%AF%EF%BC%9F\">ref</a></p>\n<figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">cat</span> /proc/version</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">uname</span> -a</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">lsb_release -a</span></span><br></pre></td></tr></table></figure>\n\n<ol>\n<li>proc 目录下记录的当前系统运行的各种数据，包括 gcc 版本</li>\n<li>显示 linux 的内核版本和系统是多少位的，”X86_64” 代表系统是 64 位</li>\n<li>显示信息</li>\n</ol>\n<ul>\n<li>Distributor ID: 类别是 Ubuntu</li>\n<li>Description: 16年3月发布的稳定版本，LTS代表 Long Term Support 长时间支持</li>\n<li>Release: 发行日期或者是发行版本号</li>\n<li>Codename: ubuntu 的代号名称</li>\n</ul>\n<figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">cd</span> Software</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">wget https://developer.download.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.243_418.87.00_linux.run</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"comment\"># sudo sh cuda_10.1.243_418.87.00_linux.run</span></span></span><br></pre></td></tr></table></figure>\n\n<p>nvidia-smi type什么意思<br><a href=\"https://stackoverflow.com/questions/54750627/what-do-g-and-c-types-mean-in-nvidia-smi\">What do G and C types mean in nvidia-smi?</a> </p>\n<ul>\n<li>They are both for GPU<ul>\n<li>C &#x3D; compute &#x3D; CUDA or OpenCL</li>\n<li>G &#x3D; graphics &#x3D; DirectX or OpenGL</li>\n</ul>\n</li>\n<li><strong>C</strong> &#x3D; Compute, which defines the processes that use the compute mode of Nvidia GPUs which use CUDA libraries, used in deep learning training and inferencing using Tensorflow-GPU, Pytorch, etc</li>\n<li><strong>G</strong> &#x3D; Graphics, which defines the processes that use the graphics mode of Nvidia GPUs used by professional 3D graphics, gnome-shell (Ubuntu’s GUI environment), Games, etc for the rendering of graphics or videos</li>\n<li><strong>C+G</strong> &#x3D; Compute + Graphics, which defines the processes that use both the contexts defined above.</li>\n</ul>\n<p>wget 加速<br><a href=\"https://blog.csdn.net/xzknet/article/details/105405078\">Linux下载加速，比Wget好太多了（CentOS、Debain都有）</a></p>\n<ul>\n<li>安装 yum-axelget 插件，安装该插件后，yum会使用多线程下载。<figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">yum -y install yum-axelget</span><br></pre></td></tr></table></figure></li>\n<li>安装后可以使用axel进行并行下载，使用例子如下<figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">axel -a -n 10 &lt;url-of-the-file-to-be-downloaded&gt;</span></span><br></pre></td></tr></table></figure></li>\n<li>使用参数<ul>\n<li>一般使用：axel url（下载文件地址）；</li>\n<li>限速使用：加上 -s 参数，如 -s 10240，即每秒下载的字节数，这里是 10 Kb；</li>\n<li>限制连接数：加上 -n 参数，如 -n 10，即打开10个连接。</li>\n</ul>\n</li>\n<li>更改默认线程数<ul>\n<li>设置线程数为32线程，或者设置成更多（默认为10线程）<figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">vim /usr/lib/yum-plugins/axelget.py</span><br></pre></td></tr></table></figure></li>\n<li>修改如下，将10改为32，两个位置：<!-- <img src=\"https://img-blog.csdnimg.cn/20200409104116584.png\" width=\"80%\">\n<img src=\"https://img-blog.csdnimg.cn/20200409104130470.png\" width=\"80%\"> -->\n<img src=\"/images/2024-12/20200409104116584.png\" width=\"80%\">\n<img src=\"/images/2024-12/20200409104130470.png\" width=\"80%\"></li>\n</ul>\n</li>\n</ul>\n<h3 id=\"下载\"><a href=\"#下载\" class=\"headerlink\" title=\"下载\"></a>下载</h3><figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">cd</span> ~/Software</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">axel -a -n 10 https://developer.download.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.243_418.87.00_linux.run</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">axel -a -n 10 https://developer.nvidia.com/compute/machine-learning/cudnn/secure/7.6.5.32/Production/10.1_20191031/cudnn-10.1-linux-x64-v7.6.5.32.tgz</span></span><br></pre></td></tr></table></figure>\n\n<ul>\n<li>cuda_10.1.105_418.39_linux.run</li>\n<li>cudnn-10.1-linux-x64-v7.6.5.32.tgz</li>\n</ul>\n<p><code>perf</code> 工具: 安装后有助于缓和 ps 的延迟, 就 ps 和 top 慢</p>\n<p>scp 使用<br><a href=\"https://www.runoob.com/linux/linux-comm-scp.html\">Linux scp命令</a><br><a href=\"https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/scp.html\">scp 跨机远程拷贝</a>  </p>\n<figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">scp -P 9019 remote@www.runoob.com:/usr/local/sin.sh /home/administrator</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">scp -P 9019 &lt;upload-file&gt; remote@www.runoob.com:/home/username</span></span><br></pre></td></tr></table></figure>\n\n\n<h3 id=\"安装\"><a href=\"#安装\" class=\"headerlink\" title=\"安装\"></a>安装</h3><figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">cd</span> ~/Software</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">sh cuda_10.1.105_418.39_linux.run</span></span><br><span class=\"line\"></span><br><span class=\"line\">Do you accept the above EULA? (accept/decline/quit)</span><br><span class=\"line\">accept</span><br><span class=\"line\"></span><br><span class=\"line\">CUDA Installer</span><br><span class=\"line\">- [X] Driver</span><br><span class=\"line\">     [X] 418.39</span><br><span class=\"line\">+ [X] CUDA Toolkit 10.1</span><br><span class=\"line\">  [X] CUDA Samples 10.1</span><br><span class=\"line\">  [X] CUDA Demo Suite 10.1</span><br><span class=\"line\">  [X] CUDA Documentation 10.1</span><br><span class=\"line\">  Install</span><br><span class=\"line\">  Options</span><br><span class=\"line\">Up/Down: Move | Left/Right: Expand | &#x27;Enter&#x27;:Select | &#x27;A&#x27;: Advanced options</span><br><span class=\"line\"></span><br><span class=\"line\">Cancel the chosen Driver, and Install</span><br><span class=\"line\"></span><br><span class=\"line\">Permission denied. Unable to write to /usr/local/cuda-10.1/</span><br><span class=\"line\">OK</span><br><span class=\"line\"><span class=\"meta prompt_\"></span></span><br><span class=\"line\"><span class=\"meta prompt_\">$</span><span class=\"language-bash\"></span></span><br><span class=\"line\"><span class=\"language-bash\">$ <span class=\"built_in\">chmod</span> +x cuda_10.1.105_418.39_linux.run</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">./cuda_10.1.105_418.39_linux.run</span></span><br><span class=\"line\"></span><br><span class=\"line\">accept</span><br><span class=\"line\">Options:</span><br><span class=\"line\">  Root install path: /home/eustomaqua/Software/cuda-10.1</span><br><span class=\"line\"></span><br><span class=\"line\"> Completed with errors. See log at /tmp/cuda-installer.log for details.</span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">cat</span> /tmp/cuda-installer.log</span></span><br></pre></td></tr></table></figure>\n\n<figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br><span class=\"line\">39</span><br><span class=\"line\">40</span><br><span class=\"line\">41</span><br><span class=\"line\">42</span><br><span class=\"line\">43</span><br><span class=\"line\">44</span><br><span class=\"line\">45</span><br><span class=\"line\">46</span><br><span class=\"line\">47</span><br><span class=\"line\">48</span><br><span class=\"line\">49</span><br><span class=\"line\">50</span><br><span class=\"line\">51</span><br><span class=\"line\">52</span><br><span class=\"line\">53</span><br><span class=\"line\">54</span><br><span class=\"line\">55</span><br><span class=\"line\">56</span><br><span class=\"line\">57</span><br><span class=\"line\">58</span><br><span class=\"line\">59</span><br><span class=\"line\">60</span><br><span class=\"line\">61</span><br><span class=\"line\">62</span><br><span class=\"line\">63</span><br><span class=\"line\">64</span><br><span class=\"line\">65</span><br><span class=\"line\">66</span><br><span class=\"line\">67</span><br><span class=\"line\">68</span><br><span class=\"line\">69</span><br><span class=\"line\">70</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">cd</span> ~/Software</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">chmod</span> +x cuda_10.1.243_418.87.00_linux.run</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">./cuda_10.1.243_418.87.00_linux.run</span></span><br><span class=\"line\"></span><br><span class=\"line\">┌──────────────────────────────────────────────────────────────────────────────┐</span><br><span class=\"line\">│ CUDA Installer                                                               │</span><br><span class=\"line\">│ - [ ] Driver                                                                 │</span><br><span class=\"line\">│      [ ] 418.87.00                                                           │</span><br><span class=\"line\">│ + [X] CUDA Toolkit 10.1                                                      │</span><br><span class=\"line\">│   [X] CUDA Samples 10.1                                                      │</span><br><span class=\"line\">│   [X] CUDA Demo Suite 10.1                                                   │</span><br><span class=\"line\">│   [X] CUDA Documentation 10.1                                                │</span><br><span class=\"line\">│   Options                                                                    │</span><br><span class=\"line\">│   Install                                                                    │</span><br><span class=\"line\">│                                                                              │</span><br><span class=\"line\">│ Up/Down: Move | Left/Right: Expand | &#x27;Enter&#x27;: Select | &#x27;A&#x27;: Advanced options │</span><br><span class=\"line\">└──────────────────────────────────────────────────────────────────────────────┘</span><br><span class=\"line\"></span><br><span class=\"line\">&#x27;Enter&#x27; + &#x27;A&#x27;</span><br><span class=\"line\"></span><br><span class=\"line\">CUDA Driver</span><br><span class=\"line\">│   [ ] Do not install any of the OpenGL-related driver files                  │</span><br><span class=\"line\">│   [ ] Do not install the nvidia-drm kernel module                            │</span><br><span class=\"line\">│   [ ] Update the system X config file to use the NVIDIA X driver             │</span><br><span class=\"line\">│   Change directory containing the kernel source files</span><br><span class=\"line\"></span><br><span class=\"line\">CUDA Toolkit</span><br><span class=\"line\">  Change Toolkit Install Path: /home/eustomaqua/Software/cuda-10.1</span><br><span class=\"line\">  [ ] Create symbolic link from /usr/local/cuda</span><br><span class=\"line\">- [ ] Create desktop menu shortcuts</span><br><span class=\"line\">     [X] Yes</span><br><span class=\"line\">  [ ] Install manpage documents to /usr/share/man</span><br><span class=\"line\"></span><br><span class=\"line\">Samples Options</span><br><span class=\"line\">  Change Writeable Samples Install Path: /home/eustomaqua/Software/cuda-samples-101</span><br><span class=\"line\"></span><br><span class=\"line\">Library install path (Blank for system default)</span><br><span class=\"line\"><span class=\"meta prompt_\">  # </span><span class=\"language-bash\">/home/eustomaqua/Software/cuda-library-10.1</span></span><br><span class=\"line\"><span class=\"meta prompt_\">  # </span><span class=\"language-bash\">Leave it as blank (as it should be)</span></span><br><span class=\"line\"><span class=\"meta prompt_\"></span></span><br><span class=\"line\"><span class=\"meta prompt_\"></span></span><br><span class=\"line\"><span class=\"meta prompt_\"></span></span><br><span class=\"line\"><span class=\"meta prompt_\"># </span><span class=\"language-bash\">Library install path: /home/eustomaqua/Software/cuda-10.1</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$</span><span class=\"language-bash\"></span></span><br><span class=\"line\"><span class=\"language-bash\"></span></span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">eustomaqua@loae-ws:~/Software$ chmod +x cuda_10.1.243_418.87.00_linux.run</span><br><span class=\"line\">eustomaqua@loae-ws:~/Software$ ./cuda_10.1.243_418.87.00_linux.run</span><br><span class=\"line\">===========</span><br><span class=\"line\">= Summary =</span><br><span class=\"line\">===========</span><br><span class=\"line\"></span><br><span class=\"line\">Driver:   Not Selected</span><br><span class=\"line\">Toolkit:  Installed in /home/eustomaqua/Software/cuda-10.1/</span><br><span class=\"line\">Samples:  Installed in /home/eustomaqua/Software/cuda-samples-101/, but missing recommended libraries</span><br><span class=\"line\"></span><br><span class=\"line\">Please make sure that</span><br><span class=\"line\"> -   PATH includes /home/eustomaqua/Software/cuda-10.1/bin</span><br><span class=\"line\"> -   LD_LIBRARY_PATH includes /home/eustomaqua/Software/cuda-10.1/lib64, or, add /home/eustomaqua/Software/cuda-10.1/lib64 to /etc/ld.so.conf and run ldconfig as root</span><br><span class=\"line\"></span><br><span class=\"line\">To uninstall the CUDA Toolkit, run cuda-uninstaller in /home/eustomaqua/Software/cuda-10.1/bin</span><br><span class=\"line\"></span><br><span class=\"line\">Please see CUDA_Installation_Guide_Linux.pdf in /home/eustomaqua/Software/cuda-10.1/doc/pdf for detailed information on setting up CUDA.</span><br><span class=\"line\">***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 418.00 is required for CUDA 10.1 functionality to work.</span><br><span class=\"line\">To install the driver using this installer, run the following command, replacing &lt;CudaInstaller&gt; with the name of this run file:</span><br><span class=\"line\">    sudo &lt;CudaInstaller&gt;.run --silent --driver</span><br><span class=\"line\"></span><br><span class=\"line\">Logfile is /tmp/cuda-installer.log</span><br><span class=\"line\">eustomaqua@loae-ws:~/Software$</span><br></pre></td></tr></table></figure>\n\n<h3 id=\"失败\"><a href=\"#失败\" class=\"headerlink\" title=\"失败\"></a>失败</h3><figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br><span class=\"line\">39</span><br><span class=\"line\">40</span><br><span class=\"line\">41</span><br><span class=\"line\">42</span><br><span class=\"line\">43</span><br><span class=\"line\">44</span><br><span class=\"line\">45</span><br><span class=\"line\">46</span><br><span class=\"line\">47</span><br><span class=\"line\">48</span><br><span class=\"line\">49</span><br><span class=\"line\">50</span><br><span class=\"line\">51</span><br><span class=\"line\">52</span><br><span class=\"line\">53</span><br><span class=\"line\">54</span><br><span class=\"line\">55</span><br><span class=\"line\">56</span><br><span class=\"line\">57</span><br><span class=\"line\">58</span><br><span class=\"line\">59</span><br><span class=\"line\">60</span><br><span class=\"line\">61</span><br><span class=\"line\">62</span><br><span class=\"line\">63</span><br><span class=\"line\">64</span><br><span class=\"line\">65</span><br><span class=\"line\">66</span><br><span class=\"line\">67</span><br><span class=\"line\">68</span><br><span class=\"line\">69</span><br><span class=\"line\">70</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">ls</span> /tmp/ | grep cuda</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">sudo</span> <span class=\"built_in\">rm</span> -r /tmp/cuda-installer.log</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">cd</span> ~/Software</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">sudo</span> <span class=\"built_in\">rm</span> -r cuda-10.1 cuda-library-10.1 cuda-samples-101</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">./cuda_10.1.243_418.87.00_linux.run</span></span><br><span class=\"line\"></span><br><span class=\"line\">Options</span><br><span class=\"line\">Change Toolkit Install Path: /home/eustomaqua/Software/cuda-10.1/</span><br><span class=\"line\">[ ] Create symbolic link from /usr/local/cuda</span><br><span class=\"line\">[ ] Install manpage documents to /usr/share/man</span><br><span class=\"line\">Change Writeable Samples Install Path: /home/eustomaqua/Software/cuda-samples-101/</span><br><span class=\"line\">Library install path (Blank for system default): &lt;dont-leave-it-blank&gt;</span><br><span class=\"line\"><span class=\"meta prompt_\">  # </span><span class=\"language-bash\">/home/eustomaqua/Software/cuda-10.1/lib64/</span></span><br><span class=\"line\"></span><br><span class=\"line\">Install</span><br><span class=\"line\"><span class=\"meta prompt_\"></span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">head</span> /tmp/cuda-installer.log -n 30</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"comment\"># tail # cat</span></span></span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">yjbian@loae-ws:~/Software$ ./cuda_10.1.243_418.87.00_linux.run</span><br><span class=\"line\">===========</span><br><span class=\"line\">= Summary =</span><br><span class=\"line\">===========</span><br><span class=\"line\"></span><br><span class=\"line\">Driver:   Not Selected</span><br><span class=\"line\">Toolkit:  Installed in /home/yjbian/Software/cuda-10.1/</span><br><span class=\"line\">Samples:  Installed in /home/yjbian/Software/cuda-samples-101/, but missing recommended libraries</span><br><span class=\"line\"></span><br><span class=\"line\">Please make sure that</span><br><span class=\"line\"> -   PATH includes /home/yjbian/Software/cuda-10.1/bin</span><br><span class=\"line\"> -   LD_LIBRARY_PATH includes /home/yjbian/Software/cuda-10.1/lib64, or, add /home/yjbian/Software/cuda-10.1/lib64 to /etc/ld.so.conf and run ldconfig as root</span><br><span class=\"line\"></span><br><span class=\"line\">To uninstall the CUDA Toolkit, run cuda-uninstaller in /home/yjbian/Software/cuda-10.1/bin</span><br><span class=\"line\"></span><br><span class=\"line\">Please see CUDA_Installation_Guide_Linux.pdf in /home/yjbian/Software/cuda-10.1/doc/pdf for detailed information on setting up CUDA.</span><br><span class=\"line\">***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 418.00 is required for CUDA 10.1 functionality to work.</span><br><span class=\"line\">To install the driver using this installer, run the following command, replacing &lt;CudaInstaller&gt; with the name of this run file:</span><br><span class=\"line\">    sudo &lt;CudaInstaller&gt;.run --silent --driver</span><br><span class=\"line\"></span><br><span class=\"line\">Logfile is /tmp/cuda-installer.log</span><br><span class=\"line\">yjbian@loae-ws:~/Software$</span><br><span class=\"line\"><span class=\"meta prompt_\"></span></span><br><span class=\"line\"><span class=\"meta prompt_\"></span></span><br><span class=\"line\"><span class=\"meta prompt_\"></span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">vim ~/.bashrc</span></span><br><span class=\"line\"><span class=\"meta prompt_\"></span></span><br><span class=\"line\"><span class=\"meta prompt_\"># </span><span class=\"language-bash\">added by Anaconda3 installer</span></span><br><span class=\"line\"><span class=\"meta prompt_\"># </span><span class=\"language-bash\"><span class=\"built_in\">export</span> PATH=<span class=\"string\">&quot;/home/yjbian/anaconda3/bin:<span class=\"variable\">$PATH</span>&quot;</span></span></span><br><span class=\"line\"><span class=\"meta prompt_\"># </span><span class=\"language-bash\">self added <span class=\"keyword\">for</span> Nvidia</span></span><br><span class=\"line\"><span class=\"meta prompt_\"># </span><span class=\"language-bash\"><span class=\"built_in\">export</span> PATH=<span class=\"variable\">$HOME</span>/anaconda3/bin:<span class=\"variable\">$HOME</span>/Software/cuda-10.0/bin:<span class=\"variable\">$PATH</span></span></span><br><span class=\"line\">export PATH=$HOME/anaconda3/bin:$PATH</span><br><span class=\"line\"><span class=\"meta prompt_\"># </span><span class=\"language-bash\"><span class=\"built_in\">export</span> LD_LIBRARY_PATH=<span class=\"variable\">$HOME</span>/Software/cuda-10.0/lib64:<span class=\"variable\">$LD_LIBRARY_PATiH</span></span></span><br><span class=\"line\"><span class=\"meta prompt_\"># </span><span class=\"language-bash\">TensorRT</span></span><br><span class=\"line\"><span class=\"meta prompt_\"># </span><span class=\"language-bash\"><span class=\"built_in\">export</span> LD_LIBRARY_PATH=<span class=\"variable\">$HOME</span>/Software/cuda-10.0/lib64:<span class=\"variable\">$HOME</span>/Software/TensorRT-6.0.1.5/lib:<span class=\"variable\">$LD_LIBRARY_PATH</span></span></span><br><span class=\"line\"><span class=\"meta prompt_\"># </span><span class=\"language-bash\"><span class=\"built_in\">export</span> CUDA_INSTALL_DIR=<span class=\"variable\">$HOME</span>/Software/cuda-10.0</span></span><br><span class=\"line\"><span class=\"meta prompt_\"># </span><span class=\"language-bash\"><span class=\"built_in\">export</span> CUDNN_INSTALL_DIR=<span class=\"variable\">$HOME</span>/Software/cuda-10.0</span></span><br><span class=\"line\"><span class=\"meta prompt_\"># </span><span class=\"language-bash\">multiple CUDA</span></span><br><span class=\"line\">export PATH=$HOME/Software/cuda-10.1/bin:$PATH</span><br><span class=\"line\">export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/Software/cuda-10.1/lib64</span><br><span class=\"line\"><span class=\"meta prompt_\"></span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">source</span> ~/.bashrc</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">source</span> activate adapruning</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">python</span></span><br><span class=\"line\"><span class=\"meta prompt_\">&gt;</span><span class=\"language-bash\">&gt;&gt; import tensorflow.compat.v1 as tf</span></span><br><span class=\"line\"><span class=\"meta prompt_\">&gt;</span><span class=\"language-bash\">&gt;&gt; tf.test.is_gpu_available()</span></span><br><span class=\"line\"><span class=\"meta prompt_\"></span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">dpkg -L libcublas10  <span class=\"comment\"># 显示一个包安装到系统里面的文件目录信息</span></span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">sudo</span> apt-get install libcublas10</span></span><br></pre></td></tr></table></figure>\n\n<p>注意 <code>LD_LIBRARY_PATH</code> 不能写成 <code>.../cuda-10.1/lib64/</code></p>\n<figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br><span class=\"line\">39</span><br><span class=\"line\">40</span><br><span class=\"line\">41</span><br><span class=\"line\">42</span><br><span class=\"line\">43</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">cd</span> ~/Software</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">tar -xzvf cudnn-10.1-linux-x64-v7.6.5.32.tgz</span></span><br><span class=\"line\">cuda/include/cudnn.h</span><br><span class=\"line\">cuda/NVIDIA_SLA_cuDNN_Support.txt</span><br><span class=\"line\">cuda/lib64/libcudnn.so</span><br><span class=\"line\">cuda/lib64/libcudnn.so.7</span><br><span class=\"line\">cuda/lib64/libcudnn.so.7.6.5</span><br><span class=\"line\">cuda/lib64/libcudnn_static.a</span><br><span class=\"line\"><span class=\"meta prompt_\"># </span><span class=\"language-bash\"><span class=\"keyword\">in</span> the folder named `cuda`</span></span><br><span class=\"line\"><span class=\"meta prompt_\"></span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">ls</span> cuda</span></span><br><span class=\"line\">include  lib64  NVIDIA_SLA_cuDNN_Support.txt</span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">mv</span> cuda/include/cudnn.h ~/Software/cuda-10.1/include/</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">mv</span> cuda/lib64/libcudnn* ~/Software/cuda-10.1/lib64/</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">chmod</span> a+r ~/Software/cuda-10.1/include/cudnn.h ~/Software/cuda-10.1/lib64/libcudnn*</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">rm</span> -r cuda</span></span><br><span class=\"line\"><span class=\"meta prompt_\"></span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">nvcc -V</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">cat</span> ~/Software/cuda-10.1/version.txt</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">cat</span> ~/Software/cuda-10.1/include/cudnn.h | grep CUDNN_MAJOR -A5</span></span><br><span class=\"line\"><span class=\"meta prompt_\"></span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">source</span> activate adapruning</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">pip list</span></span><br><span class=\"line\">numba                0.38.0</span><br><span class=\"line\">numpy                1.17.2</span><br><span class=\"line\">Pillow               5.1.0</span><br><span class=\"line\">scipy                1.1.0</span><br><span class=\"line\">tensorboard          2.1.1</span><br><span class=\"line\">tensorflow-estimator 2.1.0</span><br><span class=\"line\">tensorflow-gpu       2.1.0</span><br><span class=\"line\">tensorrt             6.0.1.5</span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">pip install tensorflow-gpu==2.1.0</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">pip install numpy==1.18.2</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">pip install numba==0.52.0 --ignore-installed llvmlite</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">pip install scipy==1.4.1</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">pip install pillow==8.1.0</span></span><br><span class=\"line\"><span class=\"meta prompt_\"></span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">pip install <span class=\"string\">&#x27;pycuda&gt;=2017.1.1&#x27;</span></span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">cd</span> Software/TensorRT-6.0.1.5</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">cd</span> python</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">pip install tensorrt-6.0.1.5-cp36-none-linux_x86_64.whl</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">cd</span> ../uff</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">pip install uff-0.6.5-py2.py3-none-any.whl</span></span><br></pre></td></tr></table></figure>\n\n<figure class=\"highlight txt\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"># self added for Nvidia</span><br><span class=\"line\"># export PATH=$HOME/anaconda3/bin:$HOME/Software/cuda-10.0/bin:$PATH</span><br><span class=\"line\">export PATH=$HOME/anaconda3/bin:$HOME/Software/cuda-10.1/bin:$PATH</span><br><span class=\"line\"># export LD_LIBRARY_PATH=$HOME/Software/cuda-10.0/lib64:$LD_LIBRARY_PATiH</span><br><span class=\"line\">export LD_LIBRARY_PATH=$HOME/Software/cuda-10.1/lib64:$LD_LIBRARY_PATH</span><br><span class=\"line\"># TensorRT</span><br><span class=\"line\">export LD_LIBRARY_PATH=$HOME/Software/cuda-10.1/lib64:$HOME/Software/TensorRT-6.0.1.5/lib:$LD_LIBRARY_PATH</span><br><span class=\"line\">export CUDA_INSTALL_DIR=$HOME/Software/cuda-10.1</span><br><span class=\"line\">export CUDNN_INSTALL_DIR=$HOME/Software/cuda-10.1</span><br><span class=\"line\"># multiple CUDA</span><br></pre></td></tr></table></figure>\n\n<h3 id=\"成功\"><a href=\"#成功\" class=\"headerlink\" title=\"成功\"></a>成功</h3><figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br><span class=\"line\">39</span><br><span class=\"line\">40</span><br><span class=\"line\">41</span><br><span class=\"line\">42</span><br><span class=\"line\">43</span><br><span class=\"line\">44</span><br><span class=\"line\">45</span><br><span class=\"line\">46</span><br><span class=\"line\">47</span><br><span class=\"line\">48</span><br><span class=\"line\">49</span><br><span class=\"line\">50</span><br><span class=\"line\">51</span><br><span class=\"line\">52</span><br><span class=\"line\">53</span><br><span class=\"line\">54</span><br><span class=\"line\">55</span><br><span class=\"line\">56</span><br><span class=\"line\">57</span><br><span class=\"line\">58</span><br><span class=\"line\">59</span><br><span class=\"line\">60</span><br><span class=\"line\">61</span><br><span class=\"line\">62</span><br><span class=\"line\">63</span><br><span class=\"line\">64</span><br><span class=\"line\">65</span><br><span class=\"line\">66</span><br><span class=\"line\">67</span><br><span class=\"line\">68</span><br><span class=\"line\">69</span><br><span class=\"line\">70</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">cd</span> Software</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">sudo</span> <span class=\"built_in\">rm</span> -r cuda-10.1 cuda-samples-101</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">./cuda_10.1.105_418.39_linux.run</span></span><br><span class=\"line\"></span><br><span class=\"line\">Options:</span><br><span class=\"line\">CUDA Toolkit</span><br><span class=\"line\">  Change Toolkit Install Path: /home/eustomaqua/Software/cuda-10.1/</span><br><span class=\"line\">  [ ] Create symbolic link from /usr/local/cuda</span><br><span class=\"line\">- [X] Create desktop menu shortcuts</span><br><span class=\"line\">     [ ] All users</span><br><span class=\"line\">     [X] Yes</span><br><span class=\"line\">     [ ] No</span><br><span class=\"line\">  [ ] Install manpage documents to /usr/share/man</span><br><span class=\"line\">CUDA Samples</span><br><span class=\"line\">  Change Sample Install Path: /home/eustomaqua/Software/cuda-samples-101/</span><br><span class=\"line\">Root install path: /home/eustomaqua/Software/cuda-10.1/</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">===========</span><br><span class=\"line\">= Summary =</span><br><span class=\"line\">===========</span><br><span class=\"line\"></span><br><span class=\"line\">Driver:   Not Selected</span><br><span class=\"line\">Toolkit:  Installed in /home/yjbian/Software/cuda-10.1/</span><br><span class=\"line\">Samples:  Installed in /home/yjbian/Software/cuda-samples-101/, but missing recommended libraries</span><br><span class=\"line\"></span><br><span class=\"line\">Please make sure that</span><br><span class=\"line\"> -   PATH includes /home/yjbian/Software/cuda-10.1/bin</span><br><span class=\"line\"> -   LD_LIBRARY_PATH includes /home/yjbian/Software/cuda-10.1/lib64, or, add /home/yjbian/Software/cuda-10.1/lib64 to /etc/ld.so.conf and run ldconfig as root</span><br><span class=\"line\"></span><br><span class=\"line\">To uninstall the CUDA Toolkit, run cuda-uninstaller in /home/yjbian/Software/cuda-10.1/bin</span><br><span class=\"line\"></span><br><span class=\"line\">Please see CUDA_Installation_Guide_Linux.pdf in /home/yjbian/Software/cuda-10.1/doc/pdf for detailed information on setting up CUDA.</span><br><span class=\"line\">***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 418.00 is required for CUDA 10.1 functionality to work.</span><br><span class=\"line\">To install the driver using this installer, run the following command, replacing &lt;CudaInstaller&gt; with the name of this run file:</span><br><span class=\"line\">    sudo &lt;CudaInstaller&gt;.run --silent --driver</span><br><span class=\"line\"></span><br><span class=\"line\">Logfile is /tmp/cuda-installer.log</span><br><span class=\"line\"><span class=\"meta prompt_\"></span></span><br><span class=\"line\"><span class=\"meta prompt_\"></span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">vim ~/.bashrc</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">tar -xvf cudnn-10.1-linux-x64-v7.6.5.32.tgz</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">mv</span> cuda/include/cudnn.h ~/Software/cuda-10.1/include/</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">mv</span> cuda/lib64/libcudnn* ~/Software/cuda-10.1/lib64/</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">chmod</span> a+r ~/Software/cuda-10.1/include/cudnn.h ~/Software/cuda-10.1/lib64/libcudnn*</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">rm</span> -r cuda</span></span><br><span class=\"line\"><span class=\"meta prompt_\"></span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">rm</span> -r TensorRT-6.0.1.5</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">tar -xvf TensorRT-6.0.1.5.Ubuntu-18.04.x86_64-gnu.cuda-10.1.cudnn7.6.tar.gz</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">cd</span> TensorRT-6.0.1.5</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">cd</span> python</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">pip install tensorrt-6.0.1.5-cp36-none-linux_x86_64.whl</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">cd</span> ../uff</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">pip install uff-0.6.5-py2.py3-none-any.whl</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">cd</span> ~/anaconda3/envs/adapruning/</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">cd</span> ~/anaconda3/lib/python3.6/site-packages</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">cd</span> ~/anaconda3/envs/adapruning/lib/python3.6/site-packages</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">cd</span> uff/converters/tensorflow/</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">vim conversion_helpers.py</span></span><br><span class=\"line\"><span class=\"meta prompt_\"></span></span><br><span class=\"line\"><span class=\"meta prompt_\"># </span><span class=\"language-bash\">from tensorflow import GraphDef</span></span><br><span class=\"line\">from tensorflow.compat.v1 import GraphDef</span><br><span class=\"line\"><span class=\"meta prompt_\"></span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">python</span></span><br><span class=\"line\"><span class=\"meta prompt_\">&gt;</span><span class=\"language-bash\">&gt;&gt; import tensorrt</span></span><br><span class=\"line\"><span class=\"meta prompt_\">&gt;</span><span class=\"language-bash\">&gt;&gt; import uff</span></span><br><span class=\"line\"><span class=\"meta prompt_\">&gt;</span><span class=\"language-bash\">&gt;&gt; import tensorflow as tf</span></span><br><span class=\"line\"><span class=\"meta prompt_\">&gt;</span><span class=\"language-bash\">&gt;&gt; tf.test.is_gpu_available()</span></span><br><span class=\"line\"><span class=\"meta prompt_\">&gt;</span><span class=\"language-bash\">&gt;&gt; import tensorflow.compat.v1 as tf</span></span><br><span class=\"line\"><span class=\"meta prompt_\">&gt;</span><span class=\"language-bash\">&gt;&gt; tf.test.is_gpu_available()</span></span><br></pre></td></tr></table></figure>\n\n<p><a href=\"https://forums.developer.nvidia.com/t/cublas-for-10-1-is-missing/71015/20\">cublas for 10.1 is missing</a><br><a href=\"https://github.com/NVIDIA/TensorRT/issues/184\">Cannot convert Tensorflow protobuf to uff</a><br><a href=\"https://stackoverflow.com/questions/31003994/anaconda-site-packages\">Anaconda site-packages</a>  </p>\n<h3 id=\"Succeed\"><a href=\"#Succeed\" class=\"headerlink\" title=\"Succeed\"></a>Succeed</h3><h1 id=\"PyPI-安装包\"><a href=\"#PyPI-安装包\" class=\"headerlink\" title=\"PyPI 安装包\"></a>PyPI 安装包</h1><h2 id=\"切换conda源\"><a href=\"#切换conda源\" class=\"headerlink\" title=\"切换conda源\"></a>切换conda源</h2><p>切换 pip 源：<br>如果遇到网络问题，可以使用清华大学的镜像：</p>\n<figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"meta prompt_\"># </span><span class=\"language-bash\">设为默认</span></span><br><span class=\"line\">pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple</span><br><span class=\"line\"><span class=\"meta prompt_\"># </span><span class=\"language-bash\">临时设置</span></span><br><span class=\"line\">pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package</span><br></pre></td></tr></table></figure>\n\n<p><strong>Refs:</strong><br><a href=\"https://mirrors.ustc.edu.cn/help/pypi.html\">PyPI 镜像源使用帮助</a><br><a href=\"https://mirrors.tuna.tsinghua.edu.cn/help/pypi/\">pypi 镜像使用帮助</a>  </p>\n<h2 id=\"pip下载超时\"><a href=\"#pip下载超时\" class=\"headerlink\" title=\"pip下载超时\"></a>pip下载超时</h2><p>报错信息为</p>\n<figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">ReadTimeoutError: HTTPSConnectionPool(host=&#x27;pypi.tuna.tsinghua.edu.cn&#x27;, port=443): Read timed out.</span><br></pre></td></tr></table></figure>\n\n<p>解决之一：<br>手动换源，注意后面要有 <code>/simple/</code> 目录</p>\n<figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">pip install numpy==1.15.1 -i https://pypi.tuna.tsinghua.edu.cn/simple/</span><br></pre></td></tr></table></figure>\n\n<p><strong>Refs:</strong><br><a href=\"https://www.jianshu.com/p/8e042b7e91b6\">解决pip超时的问题</a><br><a href=\"https://www.jianshu.com/p/02b053b8143a\">anaconda清华源可以暂弃了</a>  </p>\n<!--\n# TensorFlow\n# PyTorch\n-->\n\n\n<h1 id=\"References\"><a href=\"#References\" class=\"headerlink\" title=\"References\"></a>References</h1><figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">chmod</span> +x ?*.sh</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">nohup</span> ./?.sh</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">du</span> -h --max-depth=1</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">ps -ef | grep ?.sh</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">watch -n 10 nvidia-smi  <span class=\"comment\"># ctrl+z</span></span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">python  <span class=\"comment\"># ctrl+z in Ubuntu</span></span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">python  <span class=\"comment\"># ctrl+c in cmder of Windows</span></span></span><br></pre></td></tr></table></figure>","categories":["Records"],"tags":["TensorFlow","PyTorch","NVIDIA","Windows"]},{"title":"Debug Tips - cProfile in Python, TensorBoard","url":"https://eustomaqua.github.io/2020/2020-04-16-Python-Debug-cProfile-TensorBoard/","content":"<link rel=\"stylesheet\" class=\"aplayer-secondary-style-marker\" href=\"/assets/css/APlayer.min.css\"><script src=\"/assets/js/APlayer.min.js\" class=\"aplayer-secondary-script-marker\"></script><!--\ncategories:\n  - Coding\ntags:\n  - Debug\n  - Python\n  - TensorFlow\n-->\n<!--\ndate: 2020-04-16 05:08:51\n\n2021/1/15 14:49pm Fri\nCategory: Programming\n-->\n\n\n<h1 id=\"Python-Debug-cProfile\"><a href=\"#Python-Debug-cProfile\" class=\"headerlink\" title=\"Python Debug: cProfile\"></a>Python Debug: cProfile</h1><h2 id=\"cProfile-in-Python\"><a href=\"#cProfile-in-Python\" class=\"headerlink\" title=\"cProfile in Python\"></a>cProfile in Python</h2><p><strong>refs:</strong>  </p>\n<ul>\n<li><a href=\"https://blog.csdn.net/asukasmallriver/article/details/74356771\">使用cProfile分析Python程序性能</a>  </li>\n<li><a href=\"https://blog.csdn.net/u010453363/article/details/78415553\">python性能分析工具：cProfile使用</a></li>\n</ul>\n<p>为了优化 Python 脚本，使用 cProfile 和 pstats 对其进行性能分析。<br>思路：  </p>\n<ol>\n<li>使用 cProfile 模块生成脚本执行的统计信息文件</li>\n<li>使用 pstats 格式化统计信息，并根据需要做排序分析处理</li>\n</ol>\n<p>Step 1, 使用 cProfile 生成脚本执行的统计信息文件</p>\n<figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">python -m cProfile -o cPro_output.txt script.py -params</span></span><br></pre></td></tr></table></figure>\n\n<blockquote>\n<p>参数说明：</p>\n<ul>\n<li>使用模块当做脚本运行： <code>-m cProfile</code></li>\n<li>输出参数： <code>-o cPro_output.txt</code></li>\n<li>测试的 python 脚本： <code>script.py</code></li>\n<li>其余为 python 脚本的输入参数</li>\n</ul>\n</blockquote>\n<p>Step 2, 使用 pstats 查看格式化后的统计信息，可以根据自身需求做排序  </p>\n<figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">python profiler.py &gt; cProfiler_output.txt</span></span><br></pre></td></tr></table></figure>\n<p>其中，profiler.py 文件内容为</p>\n<figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"keyword\">import</span> pstats</span><br><span class=\"line\">p=pstats.Stats(<span class=\"string\">&#x27;./cPro_output.txt&#x27;</span>)</span><br><span class=\"line\">p.print_stats()</span><br><span class=\"line\"><span class=\"comment\">#根据调用次数排序</span></span><br><span class=\"line\">p.sort_stats(<span class=\"string\">&#x27;calls&#x27;</span>).print_stats()</span><br><span class=\"line\"><span class=\"comment\">#根据调用总时间排序</span></span><br><span class=\"line\">p.sort_stats(<span class=\"string\">&#x27;cumulative&#x27;</span>).print_stats()</span><br></pre></td></tr></table></figure>\n\n<blockquote>\n<p>*Stats类 (pstats.Stats) 说明</p>\n</blockquote>\n<table>\n<thead>\n<tr>\n<th>def Function</th>\n<th>Illustration</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>strip_dirs()</td>\n<td>用以除去文件名前的路径信息。</td>\n</tr>\n<tr>\n<td>add(filename,[…])</td>\n<td>把 profile 的输出文件加入 Stats 实例中统计</td>\n</tr>\n<tr>\n<td>dump_stats(filename)</td>\n<td>把 Stats 的统计结果保存到文件</td>\n</tr>\n<tr>\n<td>sort_stats(key,[…])</td>\n<td>最重要的一个函数，用以排序 profile 的输出</td>\n</tr>\n<tr>\n<td>reverse_order()</td>\n<td>把 Stats 实例里的数据反序重排</td>\n</tr>\n<tr>\n<td>print_stats([restriction,…])</td>\n<td>把 Stats 报表输出到 stdout</td>\n</tr>\n<tr>\n<td>print_callers([restriction,…])</td>\n<td>输出调用了指定的函数的函数的相关信息</td>\n</tr>\n<tr>\n<td>print_callees([restriction,…])</td>\n<td>输出指定的函数调用过的函数的相关信息</td>\n</tr>\n</tbody></table>\n<blockquote>\n<p>sort_stats 支持以下参数：</p>\n</blockquote>\n<table>\n<thead>\n<tr>\n<th>参数</th>\n<th>含义</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>‘calls’</td>\n<td>call count</td>\n</tr>\n<tr>\n<td>‘cumulative’</td>\n<td>cumulative time</td>\n</tr>\n<tr>\n<td>‘file’</td>\n<td>file name</td>\n</tr>\n<tr>\n<td>‘filename’</td>\n<td>file name</td>\n</tr>\n<tr>\n<td>‘module’</td>\n<td>module name</td>\n</tr>\n<tr>\n<td>‘ncalls’</td>\n<td>call count</td>\n</tr>\n<tr>\n<td>‘pcalls’</td>\n<td>primitive call count</td>\n</tr>\n<tr>\n<td>‘line’</td>\n<td>line number</td>\n</tr>\n<tr>\n<td>‘name’</td>\n<td>function name</td>\n</tr>\n<tr>\n<td>‘nfl’</td>\n<td>name&#x2F;file&#x2F;line</td>\n</tr>\n<tr>\n<td>‘stdname’</td>\n<td>standard name</td>\n</tr>\n<tr>\n<td>‘time’</td>\n<td>internal time</td>\n</tr>\n<tr>\n<td>‘tottime’</td>\n<td>internal time</td>\n</tr>\n</tbody></table>\n<ul>\n<li><p>* 一个比较典型的输出结果：</p>\n<figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">197 function calls (192 primitive calls) in 0.002 seconds</span><br><span class=\"line\">Ordered by: standard name</span><br><span class=\"line\">ncalls tottime percall cumtime percall filename:lineno(function)</span><br><span class=\"line\">1 0.000 0.000 0.001 0.001 :1()</span><br><span class=\"line\">1 0.000 0.000 0.001 0.001 re.py:212(compile)</span><br><span class=\"line\">1 0.000 0.000 0.001 0.001 re.py:268(_compile)</span><br><span class=\"line\">1 0.000 0.000 0.000 0.000 sre_compile.py:172(_compile_charset)</span><br><span class=\"line\">1 0.000 0.000 0.000 0.000 sre_compile.py:201(_optimize_charset)</span><br><span class=\"line\">4 0.000 0.000 0.000 0.000 sre_compile.py:25(_identityfunction)</span><br><span class=\"line\">3/1 0.000 0.000 0.000 0.000 sre_compile.py:33(_compile)</span><br></pre></td></tr></table></figure>\n</li>\n<li><p>输出结果说明：</p>\n<figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">共有197次函数调用，原始调用为192次，原始调用说明不包含递归调用。</span><br><span class=\"line\">以standard name进行排序。3/1表示发生了递归调用，1为原始调用次数，3为递归调用次数</span><br><span class=\"line\">ncalls 函数的被调用次数</span><br><span class=\"line\">tottime 函数总计运行时间，除去函数中调用的函数运行时间</span><br><span class=\"line\">percall 函数运行一次的平均时间，等于tottime/ncalls</span><br><span class=\"line\">cumtime 函数总计运行时间，含调用的函数运行时间</span><br><span class=\"line\">percall 函数运行一次的平均时间，等于cumtime/ncalls</span><br><span class=\"line\">filename:lineno(function) 函数所在的文件名，函数的行号，函数名</span><br></pre></td></tr></table></figure></li>\n</ul>\n<h2 id=\"logging-v-s-print\"><a href=\"#logging-v-s-print\" class=\"headerlink\" title=\"logging v.s. print\"></a>logging v.s. print</h2><p>代码中若想获知中间结果，使用 print 输出耗时过于巨大。下表是我将对应的 print 都换成 logging 信息后，程序的耗时对比。注意其他代码可认为基本没改。<br>我本来也是不知道 print 会对性能有如此之大的影响的，刚换成 logger 后也没有太在意，直到我把两个数值放在一起比较了之后……</p>\n<!--Efficiency-->\n<p>e.g., Table: Comparison of Time (min) where<br>$$Percent &#x3D; \\left(1 - \\frac{Time_{;logger}}{Time_{;print}} \\right)\\times 100%$$</p>\n<table>\n<thead>\n<tr>\n<th>Example</th>\n<th>print</th>\n<th>logger</th>\n<th>Percent (%)</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>mnist,dnn,b</td>\n<td>192.2485</td>\n<td>62.3390</td>\n<td>67.57</td>\n</tr>\n<tr>\n<td>mnist,dnn,c</td>\n<td>344.0925</td>\n<td>77.7800</td>\n<td>77.40</td>\n</tr>\n<tr>\n<td>mnist,dnn,d</td>\n<td>376.3242</td>\n<td>80.7567</td>\n<td>78.54</td>\n</tr>\n<tr>\n<td>mnist,dnn,e</td>\n<td>698.8540</td>\n<td>86.6952</td>\n<td>87.59</td>\n</tr>\n</tbody></table>\n<!--\ntypo:\n| mnist,dnn,e | 698.8540 | 80.7567 | 88.44 |\nfact:\n        dnn,d      dnn,e      dnn,d   ERROR\n-->\n\n<h3 id=\"Example\"><a href=\"#Example\" class=\"headerlink\" title=\"Example\"></a>Example</h3><p><em><strong>Example:</strong></em>  </p>\n<ul>\n<li>cProfile<figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">python -m cProfile -o prt_1h.txt compare.py -n 100 -run print</span><br><span class=\"line\">python -m cProfile -o log_1h.txt compare.py -n 100 -run logger</span><br><span class=\"line\">python -m cProfile -o log_1hd.txt compare.py -n 100 -run logger -fmt default</span><br><span class=\"line\">python -m cProfile -o log_1ht.txt compare.py -n 100 -run logger -fmt time</span><br><span class=\"line\"></span><br><span class=\"line\">python -m cProfile -o prt_1k.txt compare.py -n 1000 -run print</span><br><span class=\"line\">python -m cProfile -o log_1k.txt compare.py -n 1000 -run logger</span><br><span class=\"line\">python -m cProfile -o log_1kd.txt compare.py -n 1000 -run logger -fmt default</span><br><span class=\"line\">python -m cProfile -o log_1kt.txt compare.py -n 1000 -run logger -fmt time</span><br><span class=\"line\"></span><br><span class=\"line\">python -m cProfile -o prt_1m.txt compare.py -n 1000000 -run print</span><br><span class=\"line\">python -m cProfile -o log_1m.txt compare.py -n 1000000 -run logger</span><br><span class=\"line\">python -m cProfile -o log_1md.txt compare.py -n 1000000 -run logger -fmt default</span><br><span class=\"line\">python -m cProfile -o log_1mt.txt compare.py -n 1000000 -run logger -fmt time</span><br></pre></td></tr></table></figure></li>\n<li>pstat<figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">python cprofiler.py -o prt_1h.txt &gt; cp_prt1h.txt</span><br><span class=\"line\">python cprofiler.py -o log_1h.txt &gt; cp_log1h.txt</span><br><span class=\"line\">python cprofiler.py -o log_1hd.txt &gt; cp_log1hd.txt</span><br><span class=\"line\">python cprofiler.py -o log_1ht.txt &gt; cp_log1ht.txt</span><br><span class=\"line\"></span><br><span class=\"line\">python cprofiler.py -o prt_1k.txt &gt; cp_prt1k.txt</span><br><span class=\"line\">python cprofiler.py -o log_1k.txt &gt; cp_log1k.txt</span><br><span class=\"line\">python cprofiler.py -o log_1kd.txt &gt; cp_log1kd.txt</span><br><span class=\"line\">python cprofiler.py -o log_1kt.txt &gt; cp_log1kt.txt</span><br><span class=\"line\"></span><br><span class=\"line\">python cprofiler.py -o prt_1m.txt &gt; cp_prt1m.txt</span><br><span class=\"line\">python cprofiler.py -o log_1m.txt &gt; cp_log1m.txt</span><br><span class=\"line\">python cprofiler.py -o log_1md.txt &gt; cp_log1md.txt</span><br><span class=\"line\">python cprofiler.py -o log_1mt.txt &gt; cp_log1mt.txt</span><br></pre></td></tr></table></figure></li>\n<li><code>cp_*.txt</code> 中耗时最多的 tottime  | 对比表 (seconds)</li>\n</ul>\n<table>\n<thead>\n<tr>\n<th><code>cp_&#123;row&#125;1&#123;col&#125;.txt</code></th>\n<th>1h</th>\n<th>1k</th>\n<th>1m</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>prt</td>\n<td>0.005</td>\n<td>0.005</td>\n<td>3.431</td>\n</tr>\n<tr>\n<td>log</td>\n<td>0.004</td>\n<td>0.007</td>\n<td>0.740</td>\n</tr>\n<tr>\n<td>log (default)</td>\n<td>0.006</td>\n<td>0.006</td>\n<td>0.934</td>\n</tr>\n<tr>\n<td>log (asciitime)</td>\n<td>0.004</td>\n<td>0.007</td>\n<td>0.804</td>\n</tr>\n</tbody></table>\n<ul>\n<li>Time Cost (s)<figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">python compare.py -n 5000 -run print</span><br><span class=\"line\">python compare.py -n 5000 -run logger</span><br><span class=\"line\">python compare.py -n 5000 -run logger -fmt default</span><br><span class=\"line\">python compare.py -n 5000 -run logger -fmt time</span><br><span class=\"line\"></span><br><span class=\"line\">python compare.py -n 1000000 -run print</span><br><span class=\"line\">python compare.py -n 1000000 -run logger</span><br><span class=\"line\">python compare.py -n 1000000 -run logger -fmt default</span><br><span class=\"line\">python compare.py -n 1000000 -run logger -fmt time</span><br></pre></td></tr></table></figure></li>\n</ul>\n<table>\n<thead>\n<tr>\n<th><code>-n &#123;col&#125; -run &#123;col&#125;</code></th>\n<th>5k</th>\n<th>1m</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>prt</td>\n<td>0.017555952072143555</td>\n<td>3.732201337814331</td>\n</tr>\n<tr>\n<td>log</td>\n<td>0.007807493209838867</td>\n<td>2.201814651489258</td>\n</tr>\n<tr>\n<td>log (default)</td>\n<td>0.012686729431152344</td>\n<td>1.920773983001709</td>\n</tr>\n<tr>\n<td>log (time)</td>\n<td>0.01854419708251953</td>\n<td>2.5776114463806152</td>\n</tr>\n</tbody></table>\n<h3 id=\"Codes\"><a href=\"#Codes\" class=\"headerlink\" title=\"Codes\"></a>Codes</h3><ul>\n<li>compare.py<figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br><span class=\"line\">39</span><br><span class=\"line\">40</span><br><span class=\"line\">41</span><br><span class=\"line\">42</span><br><span class=\"line\">43</span><br><span class=\"line\">44</span><br><span class=\"line\">45</span><br><span class=\"line\">46</span><br><span class=\"line\">47</span><br><span class=\"line\">48</span><br><span class=\"line\">49</span><br><span class=\"line\">50</span><br><span class=\"line\">51</span><br><span class=\"line\">52</span><br><span class=\"line\">53</span><br><span class=\"line\">54</span><br><span class=\"line\">55</span><br><span class=\"line\">56</span><br><span class=\"line\">57</span><br><span class=\"line\">58</span><br><span class=\"line\">59</span><br><span class=\"line\">60</span><br><span class=\"line\">61</span><br><span class=\"line\">62</span><br><span class=\"line\">63</span><br><span class=\"line\">64</span><br><span class=\"line\">65</span><br><span class=\"line\">66</span><br><span class=\"line\">67</span><br><span class=\"line\">68</span><br><span class=\"line\">69</span><br><span class=\"line\">70</span><br><span class=\"line\">71</span><br><span class=\"line\">72</span><br><span class=\"line\">73</span><br><span class=\"line\">74</span><br><span class=\"line\">75</span><br><span class=\"line\">76</span><br><span class=\"line\">77</span><br><span class=\"line\">78</span><br><span class=\"line\">79</span><br><span class=\"line\">80</span><br><span class=\"line\">81</span><br><span class=\"line\">82</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"meta prompt_\"># </span><span class=\"language-bash\">coding: utf-8</span></span><br><span class=\"line\">from __future__ import absolute_import</span><br><span class=\"line\">from __future__ import division</span><br><span class=\"line\">from __future__ import print_function</span><br><span class=\"line\"></span><br><span class=\"line\">import argparse</span><br><span class=\"line\">import logging</span><br><span class=\"line\">import sys</span><br><span class=\"line\">import os</span><br><span class=\"line\">import time</span><br><span class=\"line\"></span><br><span class=\"line\">logging.basicConfig(level=logging.INFO)</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">def testPrint(n, txt=&#x27;cmpPrint.log&#x27;):</span><br><span class=\"line\">    saveout = sys.stdout</span><br><span class=\"line\">    fsock = open(txt, &quot;w&quot;)</span><br><span class=\"line\">    sys.stdout = fsock</span><br><span class=\"line\">    #</span><br><span class=\"line\">    for i in range(n):</span><br><span class=\"line\">        print(&quot;No. &quot;, i)</span><br><span class=\"line\">    #</span><br><span class=\"line\">    fsock.close()</span><br><span class=\"line\">    sys.stdout = saveout</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">def testLogger(n, txt=&#x27;cmpLogger.log&#x27;, formatter=None):</span><br><span class=\"line\">    logger = logging.getLogger(&#x27;compare&#x27;)</span><br><span class=\"line\">    logtxt = logging.FileHandler(txt)  # &#x27;compareLogger.log&#x27;)</span><br><span class=\"line\">    logtxt.setLevel(logging.DEBUG)</span><br><span class=\"line\">    if not formatter:</span><br><span class=\"line\">        logtxt.setFormatter(formatter)</span><br><span class=\"line\">    logger.addHandler(logtxt)</span><br><span class=\"line\">    #</span><br><span class=\"line\">    for i in range(n):</span><br><span class=\"line\">        logger.debug(&quot;No. &#123;&#125;&quot;.format(i))</span><br><span class=\"line\">    #</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">def deleteFiles(txt):</span><br><span class=\"line\">    if os.path.exists(txt):</span><br><span class=\"line\">        os.remove(txt)</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">parser = argparse.ArgumentParser()</span><br><span class=\"line\">parser.add_argument(&#x27;-n&#x27;, &#x27;--number&#x27;, type=int,</span><br><span class=\"line\">    default=1000, help=&#x27;Number of Output&#x27;)</span><br><span class=\"line\">parser.add_argument(&#x27;-run&#x27;, &#x27;--execute&#x27;, type=str,</span><br><span class=\"line\">    default=&quot;print&quot;, choices=[&#x27;print&#x27;, &#x27;logger&#x27;],</span><br><span class=\"line\">    help=&quot;Print or Logger?&quot;)</span><br><span class=\"line\">parser.add_argument(&#x27;-fmt&#x27;, &#x27;--format&#x27;, type=str,</span><br><span class=\"line\">    default=&#x27;&#x27;, help=&#x27;Formatter in Logger&#x27;)</span><br><span class=\"line\"><span class=\"meta prompt_\"></span></span><br><span class=\"line\"><span class=\"meta prompt_\"></span></span><br><span class=\"line\"><span class=\"meta prompt_\"># </span><span class=\"language-bash\">txt_prt = <span class=\"string\">&#x27;txtPrint.log&#x27;</span></span></span><br><span class=\"line\"><span class=\"meta prompt_\"># </span><span class=\"language-bash\">txt_log = <span class=\"string\">&#x27;txtLogger.log&#x27;</span></span></span><br><span class=\"line\"></span><br><span class=\"line\">args = parser.parse_args()</span><br><span class=\"line\">n = args.number</span><br><span class=\"line\"></span><br><span class=\"line\">if args.execute.startswith(&#x27;p&#x27;):</span><br><span class=\"line\">    txt = &#x27;txtPrint.log&#x27;</span><br><span class=\"line\">    deleteFiles(txt)</span><br><span class=\"line\">    testPrint(n, txt)</span><br><span class=\"line\"></span><br><span class=\"line\">else:</span><br><span class=\"line\">    txt = &#x27;txtLogger.log&#x27;</span><br><span class=\"line\">    deleteFiles(txt)</span><br><span class=\"line\"></span><br><span class=\"line\">    fmt = args.format</span><br><span class=\"line\">    formatter = None</span><br><span class=\"line\">    if not fmt:</span><br><span class=\"line\">        pass</span><br><span class=\"line\">    elif fmt == &#x27;default&#x27;:</span><br><span class=\"line\">        formatter = logging.Formatter(logging.BASIC_FORMAT, None)</span><br><span class=\"line\">    elif fmt == &#x27;time&#x27;:</span><br><span class=\"line\">        formatter = logging.Formatter(</span><br><span class=\"line\">            &#x27;%(asctime)s - %(name)s:%(levelname)s | %(message)s&#x27;)</span><br><span class=\"line\"></span><br><span class=\"line\">    testLogger(n, txt, formatter)</span><br><span class=\"line\"></span><br></pre></td></tr></table></figure></li>\n<li>cprofiler.py<figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"meta prompt_\"># </span><span class=\"language-bash\">coding: utf8</span></span><br><span class=\"line\">import argparse</span><br><span class=\"line\"></span><br><span class=\"line\">import pstats</span><br><span class=\"line\">&quot;&quot;&quot;</span><br><span class=\"line\">p=pstats.Stats(&#x27;./cProfile_output.txt&#x27;)</span><br><span class=\"line\">p.print_stats()</span><br><span class=\"line\">p.sort_stats(&#x27;calls&#x27;).print_stats()  #    # 根据调用次数排序</span><br><span class=\"line\">p.sort_stats(&#x27;cumulative&#x27;).print_stats()  # 根据调用总时间排序</span><br><span class=\"line\">&quot;&quot;&quot;</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">parser = argparse.ArgumentParser()</span><br><span class=\"line\">parser.add_argument(&#x27;-o&#x27;, &#x27;--output&#x27;, type=str,</span><br><span class=\"line\">    default=&#x27;./cProfile_output.txt&#x27;,</span><br><span class=\"line\">    help=&#x27;Filename of Outputs&#x27;)</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">args = parser.parse_args()</span><br><span class=\"line\">t = args.output</span><br><span class=\"line\"></span><br><span class=\"line\">p = pstats.Stats(t)</span><br><span class=\"line\">p.sort_stats(&#x27;tottime&#x27;).print_stats()</span><br><span class=\"line\"></span><br></pre></td></tr></table></figure></li>\n<li>compare.py (Time Cost)<figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">...</span><br><span class=\"line\"></span><br><span class=\"line\">args = parser.parse_args()</span><br><span class=\"line\">n = args.number</span><br><span class=\"line\"><span class=\"meta prompt_\"># </span><span class=\"language-bash\">since = time.time()</span></span><br><span class=\"line\"></span><br><span class=\"line\">if args.execute.startswith(&#x27;p&#x27;):</span><br><span class=\"line\">    ...</span><br><span class=\"line\">else:</span><br><span class=\"line\">    ...</span><br><span class=\"line\"></span><br><span class=\"line\">time_elapsed = time.time() - since</span><br><span class=\"line\">print(&quot;&#123;:6s&#125; n=&#123;&#125; fmt=&#123;&#125;&quot;.format(args.execute, args.number, args.format))</span><br><span class=\"line\">print(&quot;Time Cost: &#123;&#125; s&quot;.format(time_elapsed))</span><br></pre></td></tr></table></figure></li>\n</ul>\n<h1 id=\"TensorFlow-Debug\"><a href=\"#TensorFlow-Debug\" class=\"headerlink\" title=\"TensorFlow Debug\"></a>TensorFlow Debug</h1><h2 id=\"tf-logging\"><a href=\"#tf-logging\" class=\"headerlink\" title=\"tf.logging\"></a>tf.logging</h2><figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"keyword\">import</span> logging</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># http://landcareweb.com/questions/26327/ru-he-jiang-tensorflowri-zhi-ji-lu-zhong-ding-xiang-dao-wen-jian</span></span><br><span class=\"line\"><span class=\"comment\"># get TF logger</span></span><br><span class=\"line\">log = logging.getLogger(<span class=\"string\">&#x27;tensorflow&#x27;</span>)</span><br><span class=\"line\">log.setLevel(logging.DEBUG)</span><br><span class=\"line\"><span class=\"comment\"># create formatter and add it to the handlers</span></span><br><span class=\"line\"><span class=\"comment\">#formatter = logging.Formatter(&#x27;%(asctime)s - %(name)s - %(levelname)s - %(message)s&#x27;)</span></span><br><span class=\"line\"><span class=\"comment\"># create file handler which logs even debug messages</span></span><br><span class=\"line\">fh = logging.FileHandler(<span class=\"string\">&#x27;tensorflow.log&#x27;</span>)</span><br><span class=\"line\">fh.setLevel(logging.DEBUG)</span><br><span class=\"line\"><span class=\"comment\">#fh.setFormatter(formatter)</span></span><br><span class=\"line\">log.addHandler(fh)</span><br></pre></td></tr></table></figure>\n\n<h2 id=\"TensorBoard\"><a href=\"#TensorBoard\" class=\"headerlink\" title=\"TensorBoard\"></a>TensorBoard</h2><p>Same Terminal, Different Machines</p>\n<figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"meta prompt_\"># </span><span class=\"language-bash\">Local</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">ssh -L 16006:127.0.0.1:6006 yourname@server.address</span></span><br><span class=\"line\"><span class=\"meta prompt_\"></span></span><br><span class=\"line\"><span class=\"meta prompt_\"># </span><span class=\"language-bash\">Server</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">cd</span> expected-folder-path</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">tensorboard --logdir=./network</span></span><br><span class=\"line\"><span class=\"meta prompt_\"></span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"comment\"># Open http://127.0.0.1:16006 in Local browser</span></span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"comment\"># Ctrl+C close on the same Terminal</span></span></span><br></pre></td></tr></table></figure>\n\n<h1 id=\"PyTorch-Debug\"><a href=\"#PyTorch-Debug\" class=\"headerlink\" title=\"PyTorch Debug\"></a>PyTorch Debug</h1><p>ref: <a href=\"https://yq.aliyun.com/articles/716950?spm=a2c4e.11153959.teamlist.33.4bd85a18ZHZchy\">点赞收藏：PyTorch常用代码段整理合集</a></p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">$ pip install tensorboardX</span><br><span class=\"line\">$ python</span><br><span class=\"line\">&gt;&gt;&gt; from tensorboardX import SummaryWriter</span><br></pre></td></tr></table></figure>\n<p>ref: <a href=\"https://www.jianshu.com/p/46eb3004beca\">Pytorch使用tensorboardX可视化。超详细！！！</a></p>\n<h1 id=\"References\"><a href=\"#References\" class=\"headerlink\" title=\"* References\"></a>* References</h1><p><a href=\"https://my.oschina.net/antsky/blog/1475173\">Github 中 Markdown 锚点链接如何写</a>  </p>\n","categories":["Records"],"tags":["Python","TensorFlow","Windows"]},{"title":"NVIDIA TensorRT Installation","url":"https://eustomaqua.github.io/2020/2020-04-03-Ubuntu-TensorRT/","content":"<link rel=\"stylesheet\" class=\"aplayer-secondary-style-marker\" href=\"/assets/css/APlayer.min.css\"><script src=\"/assets/js/APlayer.min.js\" class=\"aplayer-secondary-script-marker\"></script><!--\nCreated: 2020-04-03 02:31:04\n\n2021/1/15 14:43pm Fri\nTag:\n  - NVIDIA TensorRT\n  - NVIDIA CUDA\n\nConfigure: 4 Dec 2021 15:23:06\n-->\n\n\n<h1 id=\"Installation\"><a href=\"#Installation\" class=\"headerlink\" title=\"Installation\"></a>Installation</h1><p># Ubuntu 18.04 or 16.04  </p>\n<ul>\n<li>Anaconda3-5.2.0-Linux-x86_64.sh</li>\n<li>CUDA 10.0.130</li>\n<li>cuDNN v7.6.4 for CUDA 10.0</li>\n</ul>\n<h2 id=\"Anaconda\"><a href=\"#Anaconda\" class=\"headerlink\" title=\"Anaconda\"></a>Anaconda</h2><h3 id=\"卸载\"><a href=\"#卸载\" class=\"headerlink\" title=\"卸载\"></a>卸载</h3><p><a href=\"https://blog.csdn.net/lqp888888/article/details/79807885\">Ubuntu 卸载 anaconda</a><br><a href=\"https://blog.csdn.net/qq_22474567/article/details/54984257\">linux上anaconda的卸载</a><br><a href=\"https://blog.csdn.net/lixintong1992/article/details/67654753\">Ubuntu上 anaconda的卸载</a>  </p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">$ <span class=\"comment\"># 1. 进入安装 Anaconda 目录，用下面这个命令 即可删除文件夹。</span></span><br><span class=\"line\">$ <span class=\"built_in\">cd</span> ~/VirtualEnv</span><br><span class=\"line\">$ <span class=\"built_in\">rm</span> -r anaconda3</span><br><span class=\"line\"></span><br><span class=\"line\">$ <span class=\"comment\"># 2. 更新路径。输入命令</span></span><br><span class=\"line\">$ gedit ~/.bashrc</span><br><span class=\"line\">$ <span class=\"comment\">## 注释掉或者删除“ export PATH=/home/usr/anaconda3/bin:$PATH ”，保存文档。</span></span><br><span class=\"line\"></span><br><span class=\"line\">$ <span class=\"comment\"># 3. 可使之立即生效；也可关闭当前终端，新开终端即可生效.</span></span><br><span class=\"line\">$ <span class=\"built_in\">source</span> ~/.bashrc</span><br></pre></td></tr></table></figure>\n\n<h3 id=\"安装\"><a href=\"#安装\" class=\"headerlink\" title=\"安装\"></a>安装</h3><p>Anaconda3-5.2.0-Linux-x86_64.sh <a href=\"https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/\">[mirrors.thu]</a>  </p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br><span class=\"line\">39</span><br><span class=\"line\">40</span><br><span class=\"line\">41</span><br><span class=\"line\">42</span><br><span class=\"line\">43</span><br><span class=\"line\">44</span><br><span class=\"line\">45</span><br><span class=\"line\">46</span><br><span class=\"line\">47</span><br><span class=\"line\">48</span><br><span class=\"line\">49</span><br><span class=\"line\">50</span><br><span class=\"line\">51</span><br><span class=\"line\">52</span><br><span class=\"line\">53</span><br><span class=\"line\">54</span><br><span class=\"line\">55</span><br><span class=\"line\">56</span><br><span class=\"line\">57</span><br><span class=\"line\">58</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">$ <span class=\"built_in\">cd</span> ~</span><br><span class=\"line\">$ <span class=\"built_in\">mv</span> software Software</span><br><span class=\"line\">$ <span class=\"built_in\">cd</span> ~/Software</span><br><span class=\"line\">$ bash ./Anaconda3-5.2.0-Linux-x86_64.sh</span><br><span class=\"line\"></span><br><span class=\"line\">In order to <span class=\"built_in\">continue</span> the installation process, please review the license agreement.</span><br><span class=\"line\">Please, press ENTER to <span class=\"built_in\">continue</span></span><br><span class=\"line\">&gt;&gt;&gt;</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">Do you accept the license terms? [<span class=\"built_in\">yes</span>|no]</span><br><span class=\"line\">[no] &gt;&gt;&gt;</span><br><span class=\"line\">Please answer <span class=\"string\">&#x27;yes&#x27;</span> or <span class=\"string\">&#x27;no&#x27;</span>:<span class=\"string\">&#x27;</span></span><br><span class=\"line\"><span class=\"string\">&gt;&gt;&gt; yes</span></span><br><span class=\"line\"><span class=\"string\"></span></span><br><span class=\"line\"><span class=\"string\"></span></span><br><span class=\"line\"><span class=\"string\">Anaconda3 will now be installed into this location:</span></span><br><span class=\"line\"><span class=\"string\">/home/eustomaqua/anaconda3</span></span><br><span class=\"line\"><span class=\"string\">  - Press ENTER to confirm the location</span></span><br><span class=\"line\"><span class=\"string\">  - Press CTRL-C to abort the installation</span></span><br><span class=\"line\"><span class=\"string\">  - Or specify a different location below</span></span><br><span class=\"line\"><span class=\"string\">[/home/eustomaqua/anaconda3] &gt;&gt;&gt; /home/eustomaqua/VirtualEnv/anaconda3</span></span><br><span class=\"line\"><span class=\"string\"></span></span><br><span class=\"line\"><span class=\"string\">PREFIX=/home/eustomaqua/VirtualEnv/anaconda3</span></span><br><span class=\"line\"><span class=\"string\">installing: python-3.6.5-hc3d631a_2 ...</span></span><br><span class=\"line\"><span class=\"string\">Python 3.6.5 :: Anaconda, Inc.</span></span><br><span class=\"line\"><span class=\"string\">installing: blas-1.0-mkl ...</span></span><br><span class=\"line\"><span class=\"string\"></span></span><br><span class=\"line\"><span class=\"string\"></span></span><br><span class=\"line\"><span class=\"string\">installation finished.</span></span><br><span class=\"line\"><span class=\"string\">WARNING:</span></span><br><span class=\"line\"><span class=\"string\">    You currently have a PYTHONPATH environment variable set. This may cause</span></span><br><span class=\"line\"><span class=\"string\">    unexpected behavior when running the Python interpreter in Anaconda3.</span></span><br><span class=\"line\"><span class=\"string\">    For best results, please verify that your PYTHONPATH only points to</span></span><br><span class=\"line\"><span class=\"string\">    directories of packages that are compatible with the Python interpreter</span></span><br><span class=\"line\"><span class=\"string\">    in Anaconda3: /home/eustomaqua/VirtualEnv/anaconda3</span></span><br><span class=\"line\"><span class=\"string\">Do you wish the installer to prepend the Anaconda3 install location</span></span><br><span class=\"line\"><span class=\"string\">to PATH in your /home/eustomaqua/.bashrc ? [yes|no]</span></span><br><span class=\"line\"><span class=\"string\">[no] &gt;&gt;&gt; yes</span></span><br><span class=\"line\"><span class=\"string\"></span></span><br><span class=\"line\"><span class=\"string\">Appending source /home/eustomaqua/VirtualEnv/anaconda3/bin/activate to /home/eustomaqua/.bashrc</span></span><br><span class=\"line\"><span class=\"string\">A backup will be made to: /home/eustomaqua/.bashrc-anaconda3.bak</span></span><br><span class=\"line\"><span class=\"string\">For this change to become active, you have to open a new terminal.</span></span><br><span class=\"line\"><span class=\"string\">Thank you for installing Anaconda3!</span></span><br><span class=\"line\"><span class=\"string\"></span></span><br><span class=\"line\"><span class=\"string\"></span></span><br><span class=\"line\"><span class=\"string\">===========================================================================</span></span><br><span class=\"line\"><span class=\"string\"></span></span><br><span class=\"line\"><span class=\"string\">Anaconda is partnered with Microsoft! Microsoft VSCode is a streamlined</span></span><br><span class=\"line\"><span class=\"string\">code editor with support for development operations like debugging, task</span></span><br><span class=\"line\"><span class=\"string\">running and version control.</span></span><br><span class=\"line\"><span class=\"string\">To install Visual Studio Code, you will need:</span></span><br><span class=\"line\"><span class=\"string\">  - Administrator Privileges</span></span><br><span class=\"line\"><span class=\"string\">  - Internet connectivity</span></span><br><span class=\"line\"><span class=\"string\">Visual Studio Code License: https://code.visualstudio.com/license</span></span><br><span class=\"line\"><span class=\"string\">Do you wish to proceed with the installation of Microsoft VSCode? [yes|no]</span></span><br><span class=\"line\"><span class=\"string\">&gt;&gt;&gt; no</span></span><br><span class=\"line\"><span class=\"string\">$</span></span><br></pre></td></tr></table></figure>\n\n<h3 id=\"检查\"><a href=\"#检查\" class=\"headerlink\" title=\"检查\"></a>检查</h3><figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">~/software$ python</span><br><span class=\"line\">Python 2.7.12 (default, Nov 12 2018, 14:36:49)</span><br><span class=\"line\">[GCC 5.4.0 20160609] on linux2</span><br><span class=\"line\">Type <span class=\"string\">&quot;help&quot;</span>, <span class=\"string\">&quot;copyright&quot;</span>, <span class=\"string\">&quot;credits&quot;</span> or <span class=\"string\">&quot;license&quot;</span> <span class=\"keyword\">for</span> more information.</span><br><span class=\"line\">&gt;&gt;&gt;</span><br><span class=\"line\">[1]+  Stopped(SIGTSTP)        python</span><br><span class=\"line\">~/software$</span><br><span class=\"line\"></span><br><span class=\"line\">~/software$ <span class=\"built_in\">source</span> ~/.bashrc</span><br><span class=\"line\">~/software$ python</span><br><span class=\"line\">Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56)</span><br><span class=\"line\">[GCC 7.2.0] on linux</span><br><span class=\"line\">Type <span class=\"string\">&quot;help&quot;</span>, <span class=\"string\">&quot;copyright&quot;</span>, <span class=\"string\">&quot;credits&quot;</span> or <span class=\"string\">&quot;license&quot;</span> <span class=\"keyword\">for</span> more information.</span><br><span class=\"line\">&gt;&gt;&gt;</span><br><span class=\"line\">[2]+  Stopped(SIGTSTP)        python</span><br><span class=\"line\">~/software$</span><br><span class=\"line\">~/software$ pip list</span><br></pre></td></tr></table></figure>\n\n<h2 id=\"miniconda\"><a href=\"#miniconda\" class=\"headerlink\" title=\"* miniconda\"></a>* miniconda</h2><figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br><span class=\"line\">39</span><br><span class=\"line\">40</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">whereis conda</span></span><br><span class=\"line\">conda: /opt/miniconda/bin/conda</span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">ls</span> /opt/miniconda | grep EPFO</span></span><br><span class=\"line\">(yourenv) $ ls /opt/miniconda/envs | grep yourenv</span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">conda info</span></span><br><span class=\"line\"></span><br><span class=\"line\">     active environment : yourenv</span><br><span class=\"line\">    active env location : /home/eustomaqua/.conda/envs/EPFD</span><br><span class=\"line\">            shell level : 2</span><br><span class=\"line\">       user config file : /home/eustomaqua/.condarc</span><br><span class=\"line\"> populated config files :</span><br><span class=\"line\">          conda version : 4.5.11</span><br><span class=\"line\">    conda-build version : not installed</span><br><span class=\"line\">         python version : 2.7.15.final.0</span><br><span class=\"line\">       base environment : /opt/miniconda  (read only)</span><br><span class=\"line\">           channel URLs : https://repo.anaconda.com/pkgs/main/linux-64</span><br><span class=\"line\">                          https://repo.anaconda.com/pkgs/main/noarch</span><br><span class=\"line\">                          https://repo.anaconda.com/pkgs/free/linux-64</span><br><span class=\"line\">                          https://repo.anaconda.com/pkgs/free/noarch</span><br><span class=\"line\">                          https://repo.anaconda.com/pkgs/r/linux-64</span><br><span class=\"line\">                          https://repo.anaconda.com/pkgs/r/noarch</span><br><span class=\"line\">                          https://repo.anaconda.com/pkgs/pro/linux-64</span><br><span class=\"line\">                          https://repo.anaconda.com/pkgs/pro/noarch</span><br><span class=\"line\">          package cache : /opt/miniconda/pkgs</span><br><span class=\"line\">                          /home/eustomaqua/.conda/pkgs</span><br><span class=\"line\">       envs directories : /home/eustomaqua/.conda/envs</span><br><span class=\"line\">                          /opt/miniconda/envs</span><br><span class=\"line\">               platform : linux-64</span><br><span class=\"line\">             user-agent : conda/4.5.11 requests/2.18.4 CPython/2.7.15 Linux/2.6.32-754.14.2.el6.x86_64 centos/6.10 glibc/2.18</span><br><span class=\"line\">                UID:GID : 504:504</span><br><span class=\"line\">             netrc file : None</span><br><span class=\"line\">           offline mode : False</span><br><span class=\"line\"></span><br><span class=\"line\">(yourenv) $</span><br><span class=\"line\">(yourenv) $ conda env list</span><br><span class=\"line\"><span class=\"meta prompt_\"># </span><span class=\"language-bash\">conda environments:</span></span><br><span class=\"line\"><span class=\"meta prompt_\">#</span><span class=\"language-bash\"></span></span><br><span class=\"line\"><span class=\"language-bash\">yourenv               *  /home/eustomaqua/.conda/envs/yourenv</span></span><br><span class=\"line\">base                     /opt/miniconda</span><br><span class=\"line\">python3                  /opt/miniconda/envs/python3</span><br></pre></td></tr></table></figure>\n\n<p>感觉非 root 用户使用系统的 miniconda 创建环境好像有点问题。</p>\n<ul>\n<li>比如说我创建了一个环境名叫 <code>yourenv</code> ，创建好之后，进入环境会发现 pip 已有的包跟 base 一样；</li>\n<li>然后从 <code>/opt/miniconda/envs</code> 路径去查看包会发现，并没有自己创建的这个环境；</li>\n<li>但是查找 <code>/home/eustomaqua/.conda/envs/yourenv/lib/python3.6/site-packages</code> 又会发现里面只有最基础的几个包，更不用说自己从本地文件夹安装的包了。</li>\n</ul>\n<p>我本是想查找在自己环境里从文件夹安装的模块会是个什么样，没想到根本找不到位置，凡是想和 <code>site-packages</code> 有关的地方好像都没找到，包括：</p>\n<ul>\n<li><code>/opt/miniconda/envs</code> <em>: 没有这个环境</em></li>\n<li><code>~/.conda/envs</code> <em>: 根本就没有装相关包，纯白板</em></li>\n<li><code>~/software/python35/lib/python3.5/site-packages</code> <em>: 虽然这个 pip 安装了自己的文件夹包，但是在这个文件夹里就是找不到，然后 <code>pip list</code> 的时候会出现安装文件夹的绝对地址</em></li>\n</ul>\n<p>可能就是把安装的文件夹作为安装地址了吧，因为发现该文件夹里好像多了 <code>your-package.egg-info</code>，而且虽然我有写 <code>setup.py</code>，但是并没有像 Numpy 一般自己生成了 <code>version.py</code></p>\n<p><em>Reference:</em><br>miniconda 家目录 环境地址<br><a href=\"https://www.jianshu.com/p/a5e9190b909c\">告别窘迫：修改conda环境和缓存默认路径</a>  </p>\n<p>conda 环境 出现了别的环境的包<br><a href=\"http://lizhiqiang.me/conda/\">conda的简单使用</a><br><a href=\"https://blog.csdn.net/CV_YOU/article/details/83074448\">conda建立虚拟环境并安装相应包</a>  </p>\n<h2 id=\"显卡驱动\"><a href=\"#显卡驱动\" class=\"headerlink\" title=\"显卡驱动\"></a>显卡驱动</h2><figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">$ nvidia-smi</span><br></pre></td></tr></table></figure>\n\n<h2 id=\"CUDA\"><a href=\"#CUDA\" class=\"headerlink\" title=\"CUDA\"></a>CUDA</h2><h3 id=\"卸载-1\"><a href=\"#卸载-1\" class=\"headerlink\" title=\"卸载\"></a>卸载</h3><p><a href=\"https://blog.csdn.net/XunCiy/article/details/89070315\">Win10中CUDA、cuDNN的安装与卸载</a><br><a href=\"https://blog.csdn.net/qq_33200967/article/details/80689543\">Ubuntu安装和卸载CUDA和CUDNN</a>  </p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">$ <span class=\"comment\"># 先卸载原来的 cuda, cudnn</span></span><br><span class=\"line\">$ <span class=\"built_in\">cd</span> ~/VirtualEnv</span><br><span class=\"line\">$ ./cuda90/bin/uninstall_cuda_9.0.pl</span><br><span class=\"line\">$ <span class=\"built_in\">rm</span> -r cuda90</span><br><span class=\"line\"></span><br><span class=\"line\">$ <span class=\"built_in\">rm</span> -r cuda  <span class=\"comment\">## cudnn</span></span><br><span class=\"line\">$ <span class=\"built_in\">rm</span> -r cudasamples</span><br></pre></td></tr></table></figure>\n\n<blockquote>\n<p>为什么一开始我就要卸载CUDA呢，这是因为笔者是换了显卡RTX2070，原本就安装了CUDA 8.0 和 CUDNN 7.0.5不能够正常使用，笔者需要安装CUDA 10.0 和 CUDNN 7.4.2，所以要先卸载原来的CUDA。注意以下的命令都是在root用户下操作的。<br>卸载CUDA很简单，一条命令就可以了，主要执行的是CUDA自带的卸载脚本，读者要根据自己的cuda版本找到卸载脚本：<br><code>sudo /usr/local/cuda-8.0/bin/uninstall_cuda_8.0.pl</code><br>卸载之后，还有一些残留的文件夹，之前安装的是CUDA 8.0。可以一并删除：<br><code>sudo rm -rf /usr/local/cuda-8.0/</code><br>这样就算卸载完了CUDA。</p>\n</blockquote>\n<h3 id=\"安装-1\"><a href=\"#安装-1\" class=\"headerlink\" title=\"安装\"></a>安装</h3><figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br><span class=\"line\">39</span><br><span class=\"line\">40</span><br><span class=\"line\">41</span><br><span class=\"line\">42</span><br><span class=\"line\">43</span><br><span class=\"line\">44</span><br><span class=\"line\">45</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">~$ <span class=\"built_in\">cd</span> Software</span><br><span class=\"line\">~/Software$ <span class=\"built_in\">ls</span></span><br><span class=\"line\">Anaconda3-5.2.0-Linux-x86_64.sh  cudnn-10.0-linux-x64-v7.6.4.38.solitairetheme8</span><br><span class=\"line\">cuda_10.0.130_410.48_linux.run   Python-3.6.1.tgz</span><br><span class=\"line\"></span><br><span class=\"line\">~/Software$ <span class=\"built_in\">chmod</span> +x cuda_10.0.130_410.48_linux.run</span><br><span class=\"line\">~/Software$ <span class=\"built_in\">ls</span></span><br><span class=\"line\">Anaconda3-5.2.0-Linux-x86_64.sh  cudnn-10.0-linux-x64-v7.6.4.38.solitairetheme8</span><br><span class=\"line\">cuda_10.0.130_410.48_linux.run   Python-3.6.1.tgz</span><br><span class=\"line\"></span><br><span class=\"line\">~/Software$ ./cuda_10.0.130_410.48_linux.run</span><br><span class=\"line\">Logging to /tmp/cuda_install_25104.<span class=\"built_in\">log</span></span><br><span class=\"line\">Using more to view the EULA.</span><br><span class=\"line\">End User License Agreement</span><br><span class=\"line\">--------------------------</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">  20. Licensee<span class=\"string\">&#x27;s use of linmath.h header for CPU functions for</span></span><br><span class=\"line\"><span class=\"string\">    GL vector/matrix operations from lunarG is subject to the</span></span><br><span class=\"line\"><span class=\"string\">    Apache License Version 2.0.</span></span><br><span class=\"line\"><span class=\"string\">-----------------</span></span><br><span class=\"line\"><span class=\"string\">Do you accept the previously read EULA?</span></span><br><span class=\"line\"><span class=\"string\">accept/decline/quit: Do you accept the previously read EULA?</span></span><br><span class=\"line\"><span class=\"string\">accept/decline/quit: accept</span></span><br><span class=\"line\"><span class=\"string\"></span></span><br><span class=\"line\"><span class=\"string\">Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 410.48?</span></span><br><span class=\"line\"><span class=\"string\">(y)es/(n)o/(q)uit: no</span></span><br><span class=\"line\"><span class=\"string\"></span></span><br><span class=\"line\"><span class=\"string\">Install the CUDA 10.0 Toolkit?</span></span><br><span class=\"line\"><span class=\"string\">(y)es/(n)o/(q)uit: yes</span></span><br><span class=\"line\"><span class=\"string\"></span></span><br><span class=\"line\"><span class=\"string\">Enter Toolkit Location</span></span><br><span class=\"line\"><span class=\"string\"> [ default is /usr/local/cuda-10.0 ]: /home/eustomaqua/Software/cuda-10.0</span></span><br><span class=\"line\"><span class=\"string\"></span></span><br><span class=\"line\"><span class=\"string\">Do you want to install a symbolic link at /usr/local/cuda?</span></span><br><span class=\"line\"><span class=\"string\">(y)es/(n)o/(q)uit: no</span></span><br><span class=\"line\"><span class=\"string\"></span></span><br><span class=\"line\"><span class=\"string\">Install the CUDA 10.0 Samples?</span></span><br><span class=\"line\"><span class=\"string\">(y)es/(n)o/(q)uit: yes</span></span><br><span class=\"line\"><span class=\"string\"></span></span><br><span class=\"line\"><span class=\"string\">Enter CUDA Samples Location</span></span><br><span class=\"line\"><span class=\"string\"> [ default is /home/eustomaqua ]: /home/eustomaqua/Software/cuda-samples</span></span><br><span class=\"line\"><span class=\"string\"></span></span><br><span class=\"line\"><span class=\"string\"></span></span><br><span class=\"line\"><span class=\"string\">$</span></span><br></pre></td></tr></table></figure>\n\n<h3 id=\"配置\"><a href=\"#配置\" class=\"headerlink\" title=\"配置\"></a>配置</h3><figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">~/Software$ vim ~/.bashrc</span><br><span class=\"line\">~/Software$ <span class=\"comment\"># Esc + &#x27;:wq&#x27;</span></span><br><span class=\"line\">~/Software$ <span class=\"built_in\">source</span> ~/.bashrc</span><br></pre></td></tr></table></figure>\n\n<p>修改 <code>~/.bashrc</code> 文件</p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"comment\">## cuda 9.0: 5-May-2019 central time</span></span><br><span class=\"line\"><span class=\"comment\"># export PATH=$HOME/VirtualEnv/cuda90/bin:$PATH</span></span><br><span class=\"line\"><span class=\"comment\"># export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/VirtualEnv/cuda90/lib64/</span></span><br><span class=\"line\"><span class=\"comment\"># export CPATH=$HOME/VirtualEnv/cuda90/include:$CPATH</span></span><br><span class=\"line\"><span class=\"comment\"># export DYLD_LIBRARY_PATH=$HOME/VirtualEnv/cuda90/lib:$DYLD_LIBRARY_PATH</span></span><br><span class=\"line\"><span class=\"comment\">## cuda 10.0: 3-Dec-2019 beijing time</span></span><br><span class=\"line\"><span class=\"comment\"># export PATH=/usr/local/cuda/bin:$PATH</span></span><br><span class=\"line\"><span class=\"comment\"># export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64/</span></span><br><span class=\"line\"><span class=\"comment\"># export CPATH=/usr/local/cuda/include:$CPATH</span></span><br><span class=\"line\"><span class=\"comment\"># export DYLD_LIBRARY_PATH=/usr/local/cuda/lib:$DYLD_LIBRARY_PATH</span></span><br><span class=\"line\"><span class=\"comment\"># alias python=&#x27;/home/eustomaqua/VirtualEnv/py36env/bin/python3&#x27;</span></span><br><span class=\"line\"><span class=\"built_in\">export</span> PYTHONPATH=/home/eustomaqua/VirtualEnv/py36env/bin/python3</span><br><span class=\"line\"><span class=\"built_in\">export</span> PYTHONPATH=<span class=\"string\">&quot;<span class=\"variable\">$&#123;PYTHONPATH&#125;</span>:/home/eustomaqua/GitHubLab/ml-fairness-gym&quot;</span></span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># added by Anaconda3 installer</span></span><br><span class=\"line\"><span class=\"built_in\">export</span> PATH=<span class=\"string\">&quot;/home/eustomaqua/VirtualEnv/anaconda3/bin:<span class=\"variable\">$PATH</span>&quot;</span></span><br><span class=\"line\"><span class=\"comment\"># self added for Nvidia</span></span><br><span class=\"line\"><span class=\"built_in\">export</span> PATH=<span class=\"variable\">$HOME</span>/Software/cuda-10.0/bin:<span class=\"variable\">$PATH</span></span><br><span class=\"line\"><span class=\"built_in\">export</span> LD_LIBRARY_PATH=<span class=\"variable\">$LD_LIBRARY_PATH</span>:<span class=\"variable\">$HOME</span>/Software/cuda-10.0/lib64/</span><br></pre></td></tr></table></figure>\n\n<h3 id=\"检查-1\"><a href=\"#检查-1\" class=\"headerlink\" title=\"检查\"></a>检查</h3><figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">~/Software$ nvidia-smi</span><br><span class=\"line\"></span><br><span class=\"line\">~/Software$ <span class=\"built_in\">cat</span> /usr/local/cuda/version.txt</span><br><span class=\"line\">CUDA Version 10.2.89</span><br><span class=\"line\">~/Software$ <span class=\"built_in\">cat</span> cuda-10.0/version.txt</span><br><span class=\"line\">CUDA Version 10.0.130</span><br><span class=\"line\">~/Software$</span><br><span class=\"line\"></span><br><span class=\"line\">~/Software$ <span class=\"built_in\">ls</span> /usr/local/cuda/lib64 | grep cudnn</span><br><span class=\"line\">~/Software$ <span class=\"built_in\">ls</span> cuda-10.0/lib64 | grep cudnn</span><br><span class=\"line\">~/Software$ <span class=\"comment\"># 检查表示尚未安装 cuDNN</span></span><br></pre></td></tr></table></figure>\n\n<h2 id=\"CUDNN\"><a href=\"#CUDNN\" class=\"headerlink\" title=\"CUDNN\"></a>CUDNN</h2><h3 id=\"安装-2\"><a href=\"#安装-2\" class=\"headerlink\" title=\"安装\"></a>安装</h3><figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">~/Software$ <span class=\"built_in\">ls</span></span><br><span class=\"line\">Anaconda3-5.2.0-Linux-x86_64.sh  cuda-samples</span><br><span class=\"line\">cuda-10.0                        cudnn-10.0-linux-x64-v7.6.4.38.solitairetheme8</span><br><span class=\"line\">cuda_10.0.130_410.48_linux.run   Python-3.6.1.tgz</span><br><span class=\"line\"></span><br><span class=\"line\">~/Software$ <span class=\"built_in\">cp</span> cudnn-10.0-linux-x64-v7.6.4.38.solitairetheme8 cudnn-10.0-linux-x64-v7.6.4.38.tgz</span><br><span class=\"line\">~/Software$ tar -xvf cudnn-10.0-linux-x64-v7.6.4.38.tgz</span><br><span class=\"line\">cuda/include/cudnn.h</span><br><span class=\"line\">cuda/NVIDIA_SLA_cuDNN_Support.txt</span><br><span class=\"line\">cuda/lib64/libcudnn.so</span><br><span class=\"line\">cuda/lib64/libcudnn.so.7</span><br><span class=\"line\">cuda/lib64/libcudnn.so.7.6.4</span><br><span class=\"line\">cuda/lib64/libcudnn_static.a</span><br><span class=\"line\">~/Software$</span><br><span class=\"line\"></span><br><span class=\"line\">~/Software$ <span class=\"built_in\">ls</span></span><br><span class=\"line\">Anaconda3-5.2.0-Linux-x86_64.sh  cuda-samples</span><br><span class=\"line\">cuda                             cudnn-10.0-linux-x64-v7.6.4.38.solitairetheme8</span><br><span class=\"line\">cuda-10.0                        cudnn-10.0-linux-x64-v7.6.4.38.tgz</span><br><span class=\"line\">cuda_10.0.130_410.48_linux.run   Python-3.6.1.tgz</span><br><span class=\"line\">~/Software$ <span class=\"built_in\">rm</span> cudnn-10.0-linux-x64-v7.6.4.38.solitairetheme8</span><br><span class=\"line\">~/Software$ <span class=\"built_in\">cd</span> cuda</span><br><span class=\"line\">:~/Software/cuda$ <span class=\"built_in\">ls</span></span><br><span class=\"line\">include  lib64  NVIDIA_SLA_cuDNN_Support.txt</span><br><span class=\"line\">~/Software/cuda$ <span class=\"built_in\">cd</span> ..</span><br><span class=\"line\"></span><br><span class=\"line\">~/Software$ <span class=\"built_in\">mv</span> cuda/include/cudnn.h ~/Software/cuda-10.0/include/</span><br><span class=\"line\">~/Software$ <span class=\"built_in\">mv</span> cuda/lib64/libcudnn* ~/Software/cuda-10.0/lib64</span><br><span class=\"line\">~/Software$ <span class=\"built_in\">chmod</span> a+r ~/Software/cuda-10.0/include/cudnn.h ~/Software/cuda-10.0/lib64/libcudnn*</span><br><span class=\"line\">~/Software$</span><br><span class=\"line\">~/Software$ <span class=\"built_in\">rm</span> -r cuda</span><br><span class=\"line\"><span class=\"built_in\">rm</span>: remove write-protected regular file <span class=\"string\">&#x27;cuda/NVIDIA_SLA_cuDNN_Support.txt&#x27;</span>? y</span><br><span class=\"line\">~/Software$</span><br></pre></td></tr></table></figure>\n\n<h3 id=\"检查-2\"><a href=\"#检查-2\" class=\"headerlink\" title=\"检查\"></a>检查</h3><figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">~/Software$ <span class=\"built_in\">cat</span> ~/Software/cuda-10.0/version.txt</span><br><span class=\"line\">CUDA Version 10.0.130</span><br><span class=\"line\">~/Software$ <span class=\"built_in\">cat</span> ~/Software/cuda-10.0/include/cudnn.h | grep CUDNN_MAJOR -A5</span><br><span class=\"line\"><span class=\"comment\">#define CUDNN_MAJOR 7</span></span><br><span class=\"line\"><span class=\"comment\">#define CUDNN_MINOR 6</span></span><br><span class=\"line\"><span class=\"comment\">#define CUDNN_PATCHLEVEL 4</span></span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\">#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)</span></span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\">#include &quot;driver_types.h&quot;</span></span><br><span class=\"line\"><span class=\"comment\">#include &lt;cuda_runtime.h&gt;</span></span><br><span class=\"line\"><span class=\"comment\">#include &lt;stdint.h&gt;</span></span><br><span class=\"line\"></span><br><span class=\"line\">~/Software$ <span class=\"built_in\">ls</span> ~/Software/cuda-10.0/lib64 | grep cudnn</span><br><span class=\"line\">libcudnn.so</span><br><span class=\"line\">libcudnn.so.7</span><br><span class=\"line\">libcudnn.so.7.6.4</span><br><span class=\"line\">libcudnn_static.a</span><br><span class=\"line\">~/Software$</span><br></pre></td></tr></table></figure>\n\n<h1 id=\"Python-related\"><a href=\"#Python-related\" class=\"headerlink\" title=\"Python related\"></a>Python related</h1><h2 id=\"virtualenv\"><a href=\"#virtualenv\" class=\"headerlink\" title=\"virtualenv\"></a>virtualenv</h2><p>安装</p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">$ pip install virtualenv</span><br><span class=\"line\">$ pip install virtualenvwrapper</span><br></pre></td></tr></table></figure>\n\n<p>创建新环境</p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">$ virtualenv [新环境名] --python=/usr/bin/python3</span><br></pre></td></tr></table></figure>\n<p>e.g.,</p>\n<blockquote>\n<p>cd ~<br>mkdir VirtualEnv<br>virtualenv py27env –python&#x3D;&#x2F;usr&#x2F;bin&#x2F;python2<br>virtualenv py35env –python&#x3D;&#x2F;usr&#x2F;bin&#x2F;python3</p>\n</blockquote>\n<p>虚拟环境的进入和退出</p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">$ <span class=\"built_in\">cd</span> ~/VirtualEnv</span><br><span class=\"line\">$ <span class=\"built_in\">source</span> py35env/bin/activate</span><br><span class=\"line\">$ deactivate</span><br></pre></td></tr></table></figure>\n\n<p>删除环境</p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">$ <span class=\"comment\"># 直接删除虚拟环境 (venv) 所在的文件夹即可</span></span><br><span class=\"line\">$ <span class=\"built_in\">rm</span> -r py27env</span><br></pre></td></tr></table></figure>\n\n<p><a href=\"https://www.jianshu.com/p/44ab75fbaef2\">python 虚拟环境 virtualenv&#x2F;virtualenvwrapper 设置</a><br><a href=\"https://www.jianshu.com/p/0d3c91f13d68\">虚拟环境virtualenv简单操作</a><br><a href=\"http://blog.sina.com.cn/s/blog_4ddef8f80101eu0w.html\">Python的虚拟环境virtualenv sina</a>  </p>\n<h2 id=\"conda-env\"><a href=\"#conda-env\" class=\"headerlink\" title=\"conda env\"></a>conda env</h2><p><a href=\"https://blog.csdn.net/H_O_W_E/article/details/77370456\">Anaconda创建环境、删除环境、激活环境、退出环境</a></p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">~/Software$ python</span><br><span class=\"line\">Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56)</span><br><span class=\"line\">[GCC 7.2.0] on linux</span><br><span class=\"line\">Type <span class=\"string\">&quot;help&quot;</span>, <span class=\"string\">&quot;copyright&quot;</span>, <span class=\"string\">&quot;credits&quot;</span> or <span class=\"string\">&quot;license&quot;</span> <span class=\"keyword\">for</span> more information.</span><br><span class=\"line\">&gt;&gt;&gt;</span><br><span class=\"line\">[3]+  Stopped(SIGTSTP)        python</span><br><span class=\"line\">~/Software$ conda <span class=\"built_in\">env</span> list</span><br><span class=\"line\"><span class=\"comment\"># conda environments:</span></span><br><span class=\"line\"><span class=\"comment\">#</span></span><br><span class=\"line\">base                  *  /home/eustomaqua/VirtualEnv/anaconda3</span><br><span class=\"line\"></span><br><span class=\"line\">~/Software$ <span class=\"built_in\">source</span> activate base</span><br><span class=\"line\">(base) ~/Software$ <span class=\"built_in\">source</span> deactivate</span><br><span class=\"line\">~/Software$</span><br><span class=\"line\"></span><br><span class=\"line\">~/Software$ conda create -n py36env python=3.6</span><br><span class=\"line\">~/Software$ conda remove -n py36env --all</span><br><span class=\"line\">~/Software$ conda activate adanet</span><br><span class=\"line\">~/Software$ conda deactivate</span><br></pre></td></tr></table></figure>\n\n<h2 id=\"Packages\"><a href=\"#Packages\" class=\"headerlink\" title=\"Packages\"></a>Packages</h2><h1 id=\"TensorRT\"><a href=\"#TensorRT\" class=\"headerlink\" title=\"TensorRT\"></a>TensorRT</h1><p>官方文档<br><a href=\"https://docs.nvidia.com/deeplearning/sdk/tensorrt-archived/index.html#trt_7\">Deep Learning SDK Documentation</a><br><a href=\"https://developer.nvidia.com/tensorrt\">NVIDIA TensorRT</a><br><a href=\"https://docs.nvidia.com/deeplearning/sdk/tensorrt-install-guide/index.html\">TensorRT Installation Guide - NVIDIA Developer Documentation</a>  </p>\n<h2 id=\"First-Attempt-Failed\"><a href=\"#First-Attempt-Failed\" class=\"headerlink\" title=\"First Attempt: Failed\"></a>First Attempt: Failed</h2><p><a href=\"https://zhuanlan.zhihu.com/p/64053177\">深度学习 TensorRT安装</a><br><a href=\"https://blog.csdn.net/zong596568821xp/article/details/86077553\">TensorRT安装及使用教程</a><br><a href=\"https://blog.csdn.net/wgshun616/article/details/81019601\">Ubuntu16.04 安装 TensorRT</a>  </p>\n<h3 id=\"下载\"><a href=\"#下载\" class=\"headerlink\" title=\"下载\"></a>下载</h3><p>在 Nvidia 官网注册，填写调查问卷之后可下载 TensorRT<br><a href=\"https://developer.nvidia.com/tensorrt\">NVIDIA TensorRT</a>  Click <code>Download Now</code><br>下载前先检查下自己的开发环境 —— 系统和 CUDA 版本</p>\n<ul>\n<li><pre><code class=\"bash\">~$ cat /etc/issue\nUbuntu 18.04.3 LTS \\n \\l\n\n~$ cat /usr/local/cuda/version.txt\ncat: /usr/local/cuda/version.txt: No such file or directory\n~$ cat ~/Software/cuda-10.0/version.txt\nCUDA Version 10.0.130\n~$\n<figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">- ```bash</span><br><span class=\"line\"><span class=\"meta prompt_\">  ~/Software$ </span><span class=\"language-bash\"><span class=\"built_in\">cat</span> /etc/issue</span></span><br><span class=\"line\">  Ubuntu 16.04.6 LTS \\n \\l</span><br><span class=\"line\"><span class=\"meta prompt_\"></span></span><br><span class=\"line\"><span class=\"meta prompt_\">  ~/Software$ </span><span class=\"language-bash\"><span class=\"built_in\">cat</span> /usr/local/cuda/version.txt</span></span><br><span class=\"line\">  CUDA Version 10.2.89</span><br><span class=\"line\"><span class=\"meta prompt_\">  ~/Software$ </span><span class=\"language-bash\"><span class=\"built_in\">cat</span> ~/Software/cuda-10.0/version.txt</span></span><br><span class=\"line\">  CUDA Version 10.0.130</span><br><span class=\"line\"><span class=\"meta prompt_\">  ~/Software$</span></span><br></pre></td></tr></table></figure>\n</code></pre>\n</li>\n</ul>\n<p><a href=\"https://developer.nvidia.com/nvidia-tensorrt-7x-download\">NVIDIA TensorRT 7.x Download</a><br>选择最新版 <code>TensorRT 7.0 for Linux</code></p>\n<ul>\n<li>Debian and RPM Install Packages for Linux x86<ul>\n<li><a href=\"https://developer.nvidia.com/compute/machine-learning/tensorrt/secure/7.0/7.0.0.11/local_repo/nv-tensorrt-repo-ubuntu1804-cuda10.0-trt7.0.0.11-ga-20191216_1-1_amd64.deb\">TensorRT 7.0.0.11 for Ubuntu 1804 and CUDA 10.0 DEB local repo packages</a></li>\n<li><a href=\"https://developer.nvidia.com/compute/machine-learning/tensorrt/secure/7.0/7.0.0.11/local_repo/nv-tensorrt-repo-ubuntu1604-cuda10.0-trt7.0.0.11-ga-20191216_1-1_amd64.deb\">TensorRT 7.0.0.11 for Ubuntu 1604 and CUDA 10.0 DEB local repo packages</a></li>\n</ul>\n</li>\n<li>Tar File Install Packages For Linux x86<ul>\n<li><a href=\"https://developer.nvidia.com/compute/machine-learning/tensorrt/secure/7.0/7.0.0.11/tars/TensorRT-7.0.0.11.Ubuntu-18.04.x86_64-gnu.cuda-10.0.cudnn7.6.tar.gz\">TensorRT 7.0.0.11 for Ubuntu 18.04 and CUDA 10.0 tar package</a></li>\n<li><a href=\"https://developer.nvidia.com/compute/machine-learning/tensorrt/secure/7.0/7.0.0.11/tars/TensorRT-7.0.0.11.Ubuntu-16.04.x86_64-gnu.cuda-10.0.cudnn7.6.tar.gz\">TensorRT 7.0.0.11 for Ubuntu 16.04 and CUDA 10.0 tar package</a></li>\n</ul>\n</li>\n</ul>\n<p>这里使用基于 deb 文件的安装，但是建议还是下载一个 tar 文件，这样在安装完成后，如果报错发现一些依赖包缺失，便于安装依赖包，在之后就会看到这样的操作。<br>同时需要注意的是，英伟达自己的几个 GPU 平台是有不一样的安装指南的。比如你用 Drive PX2，就要使用 DriveInstall 来安装 TensorRT 了。<br><img src=\"https://pic2.zhimg.com/80/v2-262e209917537c0f699cc1a5eb803b2d_720w.png\" width=\"100%\"></p>\n<h3 id=\"安装-3\"><a href=\"#安装-3\" class=\"headerlink\" title=\"安装\"></a>安装</h3><h4 id=\"使用-deb-包安装\"><a href=\"#使用-deb-包安装\" class=\"headerlink\" title=\"使用 deb 包安装\"></a>使用 deb 包安装</h4><p>### 添加环境变量<br>### 检查</p>\n<h4 id=\"prelim\"><a href=\"#prelim\" class=\"headerlink\" title=\"prelim\"></a>prelim</h4><p>先在 Ubuntu 16.04 系统上使用 tar 安装 TensorRT，安装完后可导入 tensorrt，但是 uff 导入失败。错因是没有 tensorflow 模块</p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">$ conda remove -n adanet --all</span><br><span class=\"line\">$ conda create -n adanet python=3.6</span><br><span class=\"line\">$ <span class=\"built_in\">source</span> activate adanet</span><br><span class=\"line\">$ pip install tensorrt uff <span class=\"comment\"># as follows in `tar`</span></span><br><span class=\"line\"><span class=\"comment\"># numpy=1.18.2; setuptools=46.1.3.post20200330</span></span><br><span class=\"line\">Package    Version</span><br><span class=\"line\">---------- -------------------</span><br><span class=\"line\">certifi    2019.11.28</span><br><span class=\"line\">numpy      1.18.2</span><br><span class=\"line\">pip        20.0.2</span><br><span class=\"line\">protobuf   3.11.3</span><br><span class=\"line\">setuptools 46.1.3.post20200330</span><br><span class=\"line\">six        1.14.0</span><br><span class=\"line\">tensorrt   7.0.0.11</span><br><span class=\"line\">uff        0.6.5</span><br><span class=\"line\">wheel      0.34.2</span><br><span class=\"line\"></span><br><span class=\"line\">$ pip install adanet</span><br><span class=\"line\"><span class=\"comment\"># Successfully installed </span></span><br><span class=\"line\"><span class=\"comment\"># absl-py-0.9.0  adanet-0.8.0</span></span><br><span class=\"line\"><span class=\"comment\"># colorama-0.4.3 coverage-4.5.4</span></span><br><span class=\"line\"><span class=\"comment\"># mock-3.0.5     nose-1.3.7</span></span><br><span class=\"line\"><span class=\"comment\"># rednose-1.3.0  termstyle-0.1.11</span></span><br><span class=\"line\"></span><br><span class=\"line\">$ pip install tensorflow-gpu</span><br><span class=\"line\"><span class=\"comment\"># Successfully installed</span></span><br><span class=\"line\"><span class=\"comment\"># astor-0.8.1 cachetools-4.0.0 chardet-3.0.4 gast-0.2.2</span></span><br><span class=\"line\"><span class=\"comment\"># google-auth-1.13.1 google-auth-oauthlib-0.4.1 google-pasta-0.2.0</span></span><br><span class=\"line\"><span class=\"comment\"># grpcio-1.27.2 h5py-2.10.0 idna-2.9</span></span><br><span class=\"line\"><span class=\"comment\"># keras-applications-1.0.8 keras-preprocessing-1.1.0</span></span><br><span class=\"line\"><span class=\"comment\"># markdown-3.2.1 oauthlib-3.1.0 opt-einsum-3.2.0</span></span><br><span class=\"line\"><span class=\"comment\"># pyasn1-0.4.8 pyasn1-modules-0.2.8</span></span><br><span class=\"line\"><span class=\"comment\"># requests-2.23.0 requests-oauthlib-1.3.0 rsa-4.0</span></span><br><span class=\"line\"><span class=\"comment\"># scipy-1.4.1</span></span><br><span class=\"line\"><span class=\"comment\"># tensorboard-2.1.1 tensorflow-estimator-2.1.0 tensorflow-gpu-2.1.0</span></span><br><span class=\"line\"><span class=\"comment\"># termcolor-1.1.0 urllib3-1.25.8 werkzeug-1.0.1 wrapt-1.12.1</span></span><br></pre></td></tr></table></figure>\n\n<p><strong>导入错误</strong></p>\n<p>Cannot dlopen some TensorRT libraries.<br><a href=\"https://github.com/tensorflow/tensorflow/issues/36201\">“Could not load dynamic library ‘libnvinfer.so.6’” when installing from WSL 2</a><br><a href=\"https://github.com/tensorflow/tensorflow/issues/35968\">Could not load dynamic library ‘libnvinfer_plugin.so.6’</a><br><a href=\"https://stackoverflow.com/questions/59954265/installation-errors-with-tensorflow-2-1-0\">Installation errors with tensorflow 2.1.0</a>  </p>\n<p>Could not find .pgm in data directories, TensorRT<br><a href=\"https://github.com/NVIDIA/TensorRT/issues/375\">Keras vs. TensorRT Incorrect Results</a><br><a href=\"https://github.com/tensorflow/tensorflow/issues/36724\">Bug for TF2.x + TensorRT(7) failing when minimum_segment_size&#x3D;2</a>  </p>\n<p><a href=\"https://github.com/tensorflow/tensorflow/issues/34329\">Tensorflow TensorRT: Could not load dynamic library ‘libnvinfer.so.5’</a>  </p>\n<p><strong>tensorflow-gpu 2.1.0 需要 libnvinfer.so.6 ，不是 TensorRT 7.x</strong><br><strong>必须重新安装 TensorRT 6.0</strong> </p>\n<h4 id=\"使用-tar-包安装\"><a href=\"#使用-tar-包安装\" class=\"headerlink\" title=\"使用 tar 包安装\"></a>使用 tar 包安装</h4><p>首先下载 tar 版本的安装包，下载地址需要登陆 NVIDIA。<br>安装 TensorRT 前需要安装 CUDA 和 cuDNN </p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">~$ <span class=\"comment\"># 1. 打开下载路径，解压 tar 文件 </span></span><br><span class=\"line\">~$ <span class=\"built_in\">cd</span> Software</span><br><span class=\"line\">~/Software$ <span class=\"built_in\">ls</span></span><br><span class=\"line\">Anaconda3-5.2.0-Linux-x86_64.sh</span><br><span class=\"line\">cuda-10.0</span><br><span class=\"line\">cuda_10.0.130_410.48_linux.run</span><br><span class=\"line\">cuda-samples</span><br><span class=\"line\">cudnn-10.0-linux-x64-v7.6.4.38.tgz</span><br><span class=\"line\">nv-tensorrt-repo-ubuntu1604-cuda10.0-trt7.0.0.11-ga-20191216_1-1_amd64.deb</span><br><span class=\"line\">Python-3.6.1.tgz</span><br><span class=\"line\">TensorRT-7.0.0.11.Ubuntu-16.04.x86_64-gnu.cuda-10.0.cudnn7.6.tar.gz</span><br><span class=\"line\">~/Software$ tar -xvf TensorRT-7.0.0.11.Ubuntu-16.04.x86_64-gnu.cuda-10.0.cudnn7.6.tar.gz</span><br><span class=\"line\"></span><br><span class=\"line\">~/Software$ <span class=\"comment\"># 此时多了一个 `TensorRT-7.0.0.11` 文件夹</span></span><br><span class=\"line\">~/Software$ <span class=\"comment\"># 2. 解压好添加环境变量</span></span><br><span class=\"line\">~/Software$ vim ~/.bashrc  <span class=\"comment\"># 打开环境变量文件</span></span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\">## # 将下面三个环境变量写入环境变量文件并保存</span></span><br><span class=\"line\"><span class=\"comment\">## export LD_LIBRARY_PATH=TensorRT解压路径/lib:$LD_LIBRARY_PATH</span></span><br><span class=\"line\"><span class=\"comment\">## export CUDA_INSTALL_DIR=/usr/local/cuda-9.0</span></span><br><span class=\"line\"><span class=\"comment\">## export CUDNN_INSTALL_DIR=/usr/local/cuda-9.0</span></span><br><span class=\"line\">i.e,,</span><br><span class=\"line\"><span class=\"built_in\">export</span> LD_LIBRARY_PATH=<span class=\"variable\">$HOME</span>/Software/TensorRT-7.0.0.11/lib:<span class=\"variable\">$LD_LIBRARY_PATH</span></span><br><span class=\"line\"><span class=\"built_in\">export</span> CUDA_INSTALL_DIR=<span class=\"variable\">$HOME</span>/Software/cuda-10.0</span><br><span class=\"line\"><span class=\"built_in\">export</span> CUDNN_INSTALL_DIR=<span class=\"variable\">$HOME</span>/Software/cuda-10.0</span><br><span class=\"line\"></span><br><span class=\"line\">~/Software$ <span class=\"built_in\">source</span> ~/.bashrc  <span class=\"comment\"># 使刚刚修改的环境变量文件生效</span></span><br></pre></td></tr></table></figure>\n\n<p>下面是安装 Python 的 TensorRT 包</p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">~/Software$ <span class=\"comment\"># 3. 进入解压后的 TensorRT 目录下的 python 文件夹</span></span><br><span class=\"line\">~/Software$ <span class=\"built_in\">cd</span> TensorRT-7.0.0.11</span><br><span class=\"line\">~/Software/TensorRT-7.0.0.11$ <span class=\"built_in\">ls</span></span><br><span class=\"line\">bin   doc           include  python   targets                     uff</span><br><span class=\"line\">data  graphsurgeon  lib      samples  TensorRT-Release-Notes.pdf</span><br><span class=\"line\">~/Software/TensorRT-7.0.0.11$ <span class=\"built_in\">cd</span> Python</span><br><span class=\"line\">-sh: <span class=\"built_in\">cd</span>: Python: No such file or directory</span><br><span class=\"line\">~/Software/TensorRT-7.0.0.11$ <span class=\"built_in\">cd</span> python</span><br><span class=\"line\">~/Software/TensorRT-7.0.0.11/python$ <span class=\"built_in\">ls</span></span><br><span class=\"line\">tensorrt-7.0.0.11-cp27-none-linux_x86_64.whl  tensorrt-7.0.0.11-cp36-none-linux_x86_64.whl</span><br><span class=\"line\">tensorrt-7.0.0.11-cp34-none-linux_x86_64.whl  tensorrt-7.0.0.11-cp37-none-linux_x86_64.whl</span><br><span class=\"line\">tensorrt-7.0.0.11-cp35-none-linux_x86_64.whl</span><br><span class=\"line\">~/Software/TensorRT-7.0.0.11/python$</span><br><span class=\"line\"></span><br><span class=\"line\">~/Software/TensorRT-7.0.0.11/python$ <span class=\"comment\"># 安装。</span></span><br><span class=\"line\"><span class=\"comment\"># 注意刚刚 source ~/.bashrc 后自动退出虚拟环境，需重新进入</span></span><br><span class=\"line\">~/Software/TensorRT-7.0.0.11/python$ conda activate adanet</span><br><span class=\"line\">~/Software/TensorRT-7.0.0.11/python$ pip install tensorrt-7.0.0.11-cp36-none-linux_x86_64.whl</span><br><span class=\"line\">Processing ./tensorrt-7.0.0.11-cp36-none-linux_x86_64.whl</span><br><span class=\"line\">Installing collected packages: tensorrt</span><br><span class=\"line\">Successfully installed tensorrt-7.0.0.11</span><br><span class=\"line\">(adanet) ~/Software/TensorRT-7.0.0.11/python$ pip list</span><br><span class=\"line\">Package    Version</span><br><span class=\"line\">---------- -------------------</span><br><span class=\"line\">certifi    2019.11.28</span><br><span class=\"line\">pip        20.0.2</span><br><span class=\"line\">setuptools 46.1.3.post20200330</span><br><span class=\"line\">tensorrt   7.0.0.11</span><br><span class=\"line\">wheel      0.34.2</span><br><span class=\"line\">(adanet) ~/Software/TensorRT-7.0.0.11/python$</span><br></pre></td></tr></table></figure>\n\n<p>测试 TensorRT 是否安装成功，能正确输出版本号即可</p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">(adanet) ~/Software/TensorRT-7.0.0.11/python$ python</span><br><span class=\"line\">Python 3.6.10 |Anaconda, Inc.| (default, Mar 25 2020, 23:51:54)</span><br><span class=\"line\">[GCC 7.3.0] on linux</span><br><span class=\"line\">Type <span class=\"string\">&quot;help&quot;</span>, <span class=\"string\">&quot;copyright&quot;</span>, <span class=\"string\">&quot;credits&quot;</span> or <span class=\"string\">&quot;license&quot;</span> <span class=\"keyword\">for</span> more information.</span><br><span class=\"line\">&gt;&gt;&gt; import tensorrt</span><br><span class=\"line\">&gt;&gt;&gt; tensorrt.__version__</span><br><span class=\"line\"><span class=\"string\">&#x27;7.0.0.11&#x27;</span></span><br><span class=\"line\">&gt;&gt;&gt;</span><br><span class=\"line\">[5]+  Stopped(SIGTSTP)        python</span><br></pre></td></tr></table></figure>\n\n<p>然后转到 uff 目录下安装 uff 包</p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">(adanet) ~/Software/TensorRT-7.0.0.11/python$ <span class=\"built_in\">cd</span> ../uff</span><br><span class=\"line\">(adanet) ~/Software/TensorRT-7.0.0.11/uff$ <span class=\"built_in\">ls</span></span><br><span class=\"line\">uff-0.6.5-py2.py3-none-any.whl</span><br><span class=\"line\">(adanet) ~/Software/TensorRT-7.0.0.11/uff$ pip install uff-0.6.5-py2.py3-none-any.whl</span><br><span class=\"line\">Processing ./uff-0.6.5-py2.py3-none-any.whl</span><br><span class=\"line\">Collecting protobuf&gt;=3.3.0</span><br><span class=\"line\">  Downloading protobuf-3.11.3-cp36-cp36m-manylinux1_x86_64.whl (1.3 MB)</span><br><span class=\"line\">     |████████████████████████████████| 1.3 MB 562 kB/s</span><br><span class=\"line\">Collecting numpy&gt;=1.11.0</span><br><span class=\"line\">  Downloading numpy-1.18.2-cp36-cp36m-manylinux1_x86_64.whl (20.2 MB)</span><br><span class=\"line\">     |████████████████████████████████| 20.2 MB 2.3 MB/s</span><br><span class=\"line\">Requirement already satisfied: setuptools <span class=\"keyword\">in</span> /home/eustomaqua/VirtualEnv/anaconda3/envs/adanet/lib/python3.6/site-packages (from protobuf&gt;=3.3.0-&gt;uff==0.6.5) (46.1.3.post20200330)</span><br><span class=\"line\">Collecting six&gt;=1.9</span><br><span class=\"line\">  Downloading six-1.14.0-py2.py3-none-any.whl (10 kB)</span><br><span class=\"line\">Installing collected packages: six, protobuf, numpy, uff</span><br><span class=\"line\">Successfully installed numpy-1.18.2 protobuf-3.11.3 six-1.14.0 uff-0.6.5</span><br><span class=\"line\">(adanet) ~/Software/TensorRT-7.0.0.11/uff$</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 测试，会输出 uff 的安装路径</span></span><br><span class=\"line\">(adanet) ~/Software/TensorRT-7.0.0.11/uff$ <span class=\"built_in\">which</span> convert-to-uff</span><br><span class=\"line\">/home/eustomaqua/VirtualEnv/anaconda3/envs/adanet/bin/convert-to-uff</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 拷贝 lenet5.uff 到 python 相关目录进行验证</span></span><br><span class=\"line\">(adanet) ~/Software/TensorRT-7.0.0.11/uff$ <span class=\"built_in\">cd</span> ..</span><br><span class=\"line\">(adanet) ~/Software/TensorRT-7.0.0.11$ <span class=\"built_in\">mkdir</span> python/data</span><br><span class=\"line\">(adanet) ~/Software/TensorRT-7.0.0.11$ <span class=\"built_in\">mkdir</span> python/data/mnist</span><br><span class=\"line\">(adanet) ~/Software/TensorRT-7.0.0.11$ <span class=\"built_in\">cp</span> ./data/mnist/lenet5.uff ./python/data/mnist/lenet5.uff</span><br><span class=\"line\">(adanet) ~/Software/TensorRT-7.0.0.11$ <span class=\"built_in\">cd</span> ./samples/sampleMNIST</span><br><span class=\"line\">(adanet) ~/Software/TensorRT-7.0.0.11/samples/sampleMNIST$ <span class=\"built_in\">ls</span></span><br><span class=\"line\">Makefile  README.md  sampleMNIST.cpp</span><br><span class=\"line\">(adanet) ~/Software/TensorRT-7.0.0.11/samples/sampleMNIST$ make clean</span><br><span class=\"line\">(adanet) ~/Software/TensorRT-7.0.0.11/samples/sampleMNIST$ make</span><br><span class=\"line\">(adanet) ~/Software/TensorRT-7.0.0.11/samples/sampleMNIST$ <span class=\"built_in\">cd</span> ../../bin</span><br><span class=\"line\">(adanet) ~/Software/TensorRT-7.0.0.11/bin$ ./sample_mnist</span><br><span class=\"line\"><span class=\"comment\"># 若命令执行顺利则/即安装成功</span></span><br><span class=\"line\"><span class=\"comment\"># Could not find 3.pgm in data directories: &amp;&amp;&amp;&amp; FAILED</span></span><br></pre></td></tr></table></figure>\n\n<p>Current optimization profile is: 0. Please ensure there are no enqueued operations pending in this context prior to switching profiles<br><a href=\"https://forums.developer.nvidia.com/t/please-ensure-there-are-no-enqueued-operations-pending-in-this-context-prior-to-switching-profiles-warning/111189\">Please ensure there are no enqueued operations pending in this context prior to switching profiles” warning</a>  </p>\n<h2 id=\"Second-Attempt-Work\"><a href=\"#Second-Attempt-Work\" class=\"headerlink\" title=\"Second Attempt: Work\"></a>Second Attempt: Work</h2><h3 id=\"下载-1\"><a href=\"#下载-1\" class=\"headerlink\" title=\"下载\"></a>下载</h3><p><a href=\"https://developer.nvidia.com/nvidia-tensorrt-6x-download\">NVIDIA TensorRT 6.x Download</a><br>TensorRT 6.0 GA for Linux</p>\n<ul>\n<li>Debian and RPM Install Packages for Linux x86<ul>\n<li>TensorRT 6.0.1.5 GA for Ubuntu 1804 and CUDA 10.0 DEB local repo packages</li>\n</ul>\n</li>\n<li>Tar File Install Packages For Linux x86<ul>\n<li>TensorRT 6.0.1.5 GA for Ubuntu 18.04 and CUDA 10.0 tar package</li>\n<li>TensorRT 6.0.1.5 GA for Ubuntu 16.04 and CUDA 10.0 tar package</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"使用-tar-包安装-1\"><a href=\"#使用-tar-包安装-1\" class=\"headerlink\" title=\"使用 tar 包安装\"></a>使用 tar 包安装</h3><p>卸载 TensorRT<br><a href=\"https://www.cnblogs.com/darkknightzh/p/11129472.html\">（原）Ubuntu安装TensorRT</a><br><a href=\"https://blog.csdn.net/calmuse/article/details/93616720\">Ubuntu16.04 安装tensorRT 全过程</a><br><a href=\"https://blog.csdn.net/weixin_37669089/article/details/85255760\">ubuntu安装tensorRT</a>  </p>\n<p>先卸载</p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">$ <span class=\"built_in\">source</span> activate adanet</span><br><span class=\"line\">$ pip uninstall uff  <span class=\"comment\"># y</span></span><br><span class=\"line\">$ pip uninstall tensorrt  <span class=\"comment\"># y</span></span><br><span class=\"line\">$ <span class=\"built_in\">cd</span> ~/Software</span><br><span class=\"line\">$ <span class=\"built_in\">rm</span> -r TensorRT-7.0.0.11</span><br></pre></td></tr></table></figure>\n\n<p>再安装</p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">(adanet) ~$ <span class=\"built_in\">cd</span> ~/Software </span><br><span class=\"line\">$ tar -xzvf TensorRT-6.0.1.5.Ubuntu-16.04.x86_64-gnu.cuda-10.0.cudnn7.6.tar.gz</span><br><span class=\"line\">$ vim ~/.bashrc</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># added by Anaconda3 installer</span></span><br><span class=\"line\"><span class=\"built_in\">export</span> PATH=<span class=\"string\">&quot;/home/eustomaqua/VirtualEnv/anaconda3/bin:<span class=\"variable\">$PATH</span>&quot;</span></span><br><span class=\"line\"><span class=\"comment\"># self added for Nvidia</span></span><br><span class=\"line\"><span class=\"built_in\">export</span> PATH=<span class=\"variable\">$HOME</span>/Software/cuda-10.0/bin:<span class=\"variable\">$PATH</span></span><br><span class=\"line\"><span class=\"built_in\">export</span> LD_LIBRARY_PATH=<span class=\"variable\">$HOME</span>/Software/cuda-10.0/lib64:<span class=\"variable\">$LD_LIBRARY_PATH</span></span><br><span class=\"line\"><span class=\"built_in\">export</span> LD_LIBRARY_PATH=<span class=\"variable\">$HOME</span>/Software/TensorRT-6.0.1.5/lib:<span class=\"variable\">$LD_LIBRARY_PATH</span></span><br><span class=\"line\"><span class=\"built_in\">export</span> CUDA_INSTALL_DIR=<span class=\"variable\">$HOME</span>/Software/cuda-10.0</span><br><span class=\"line\"><span class=\"built_in\">export</span> CUDNN_INSTALL_DIR=<span class=\"variable\">$HOME</span>/Software/cuda-10.0</span><br></pre></td></tr></table></figure>\n\n<p>新开终端以便使 <code>~/.bashrc</code> 文件生效</p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">(adanet) ~$ <span class=\"built_in\">cd</span> ~/Software</span><br><span class=\"line\">$ <span class=\"built_in\">cd</span> TensorRT-6.0.1.5</span><br><span class=\"line\"></span><br><span class=\"line\">$ <span class=\"built_in\">cd</span> python</span><br><span class=\"line\">$ pip install tensorrt-6.0.1.5-cp36-none-linux_x86_64.whl</span><br><span class=\"line\">Successfully installed tensorrt-6.0.1.5</span><br><span class=\"line\">&gt;&gt;&gt; import tensorrt</span><br><span class=\"line\">&gt;&gt;&gt; tensorrt.__version__</span><br><span class=\"line\"></span><br><span class=\"line\">$ <span class=\"built_in\">cd</span> ../uff</span><br><span class=\"line\">$ pip install uff-0.6.5-py2.py3-none-any.whl</span><br><span class=\"line\">Successfully installed uff-0.6.5</span><br></pre></td></tr></table></figure>\n\n<p>检查 tensorflow, adanet, uff 的导入情况</p>\n<figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">Python <span class=\"number\">3.6</span><span class=\"number\">.10</span> |Anaconda, Inc.| (default, Mar <span class=\"number\">25</span> <span class=\"number\">2020</span>, <span class=\"number\">23</span>:<span class=\"number\">51</span>:<span class=\"number\">54</span>)</span><br><span class=\"line\">[GCC <span class=\"number\">7.3</span><span class=\"number\">.0</span>] on linux</span><br><span class=\"line\"><span class=\"type\">Type</span> <span class=\"string\">&quot;help&quot;</span>, <span class=\"string\">&quot;copyright&quot;</span>, <span class=\"string\">&quot;credits&quot;</span> <span class=\"keyword\">or</span> <span class=\"string\">&quot;license&quot;</span> <span class=\"keyword\">for</span> more information.</span><br><span class=\"line\"><span class=\"meta\">&gt;&gt;&gt; </span><span class=\"keyword\">import</span> tensorflow <span class=\"keyword\">as</span> tf</span><br><span class=\"line\"><span class=\"number\">2020</span>-04-03 07:02:<span class=\"number\">35.550509</span>: I tensorflow/stream_executor/platform/default/dso_loader.cc:<span class=\"number\">44</span>] Successfully opened dynamic library libnvinfer.so<span class=\"number\">.6</span></span><br><span class=\"line\"><span class=\"number\">2020</span>-04-03 07:02:<span class=\"number\">35.552571</span>: I tensorflow/stream_executor/platform/default/dso_loader.cc:<span class=\"number\">44</span>] Successfully opened dynamic library libnvinfer_plugin.so<span class=\"number\">.6</span></span><br><span class=\"line\"><span class=\"meta\">&gt;&gt;&gt; </span><span class=\"keyword\">import</span> adanet</span><br><span class=\"line\">WARNING:tensorflow:From /home/eustomaqua/VirtualEnv/anaconda3/envs/adanet/lib/python3<span class=\"number\">.6</span>/site-packages/adanet/core/tpu_estimator.py:<span class=\"number\">39</span>: The name tf.estimator.tpu.TPUEstimator <span class=\"keyword\">is</span> deprecated. Please use tf.compat.v1.estimator.tpu.TPUEstimator instead.</span><br><span class=\"line\"></span><br><span class=\"line\">&gt;&gt;&gt;</span><br><span class=\"line\"><span class=\"meta\">&gt;&gt;&gt; </span><span class=\"keyword\">import</span> tensorrt</span><br><span class=\"line\"><span class=\"meta\">&gt;&gt;&gt; </span><span class=\"keyword\">import</span> uff</span><br><span class=\"line\">Traceback (most recent call last):</span><br><span class=\"line\">  File <span class=\"string\">&quot;/home/eustomaqua/VirtualEnv/anaconda3/envs/adanet/lib/python3.6/site-packages/uff/converters/tensorflow/conversion_helpers.py&quot;</span>, line <span class=\"number\">18</span>, <span class=\"keyword\">in</span> &lt;module&gt;</span><br><span class=\"line\">    <span class=\"keyword\">from</span> tensorflow <span class=\"keyword\">import</span> GraphDef</span><br><span class=\"line\">ImportError: cannot <span class=\"keyword\">import</span> name <span class=\"string\">&#x27;GraphDef&#x27;</span></span><br><span class=\"line\"></span><br><span class=\"line\">During handling of the above exception, another exception occurred:</span><br><span class=\"line\"></span><br><span class=\"line\">Traceback (most recent call last):</span><br><span class=\"line\">  File <span class=\"string\">&quot;&lt;stdin&gt;&quot;</span>, line <span class=\"number\">1</span>, <span class=\"keyword\">in</span> &lt;module&gt;</span><br><span class=\"line\">  File <span class=\"string\">&quot;/home/eustomaqua/VirtualEnv/anaconda3/envs/adanet/lib/python3.6/site-packages/uff/__init__.py&quot;</span>, line <span class=\"number\">2</span>, <span class=\"keyword\">in</span> &lt;module&gt;</span><br><span class=\"line\">    <span class=\"keyword\">from</span> uff.converters.tensorflow.conversion_helpers <span class=\"keyword\">import</span> from_tensorflow  <span class=\"comment\"># noqa</span></span><br><span class=\"line\">  File <span class=\"string\">&quot;/home/eustomaqua/VirtualEnv/anaconda3/envs/adanet/lib/python3.6/site-packages/uff/converters/tensorflow/conversion_helpers.py&quot;</span>, line <span class=\"number\">23</span>, <span class=\"keyword\">in</span> &lt;module&gt;</span><br><span class=\"line\">    https://www.tensorflow.org/install/<span class=\"string\">&quot;&quot;&quot;.format(err))</span></span><br><span class=\"line\"><span class=\"string\">ImportError: ERROR: Failed to import module (cannot import name &#x27;GraphDef&#x27;)</span></span><br><span class=\"line\"><span class=\"string\">Please make sure you have TensorFlow installed.</span></span><br><span class=\"line\"><span class=\"string\">For installation instructions, see:</span></span><br><span class=\"line\"><span class=\"string\">https://www.tensorflow.org/install/</span></span><br><span class=\"line\"><span class=\"string\">&gt;&gt;&gt;</span></span><br></pre></td></tr></table></figure>\n\n<p>ImportError: cannot import name ‘GraphDef’<br><a href=\"https://stackoverflow.com/questions/50031584/importerror-cannot-import-name-graph\">ImportError: cannot import name ‘Graph’</a><br><a href=\"https://forums.developer.nvidia.com/t/tensorrt-6-import-uff-error/108008\">TensorRT 6 : import uff error</a>  </p>\n<blockquote>\n<p>It seems to be due to Tensorflow version.<br>UFF converter not supporting TF version 2.0.<br>Please check the tensorflow version and install tensorflow version 1.15 or 1.14.</p>\n</blockquote>\n<p>检查 uff 的安装情况</p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br><span class=\"line\">39</span><br><span class=\"line\">40</span><br><span class=\"line\">41</span><br><span class=\"line\">42</span><br><span class=\"line\">43</span><br><span class=\"line\">44</span><br><span class=\"line\">45</span><br><span class=\"line\">46</span><br><span class=\"line\">47</span><br><span class=\"line\">48</span><br><span class=\"line\">49</span><br><span class=\"line\">50</span><br><span class=\"line\">51</span><br><span class=\"line\">52</span><br><span class=\"line\">53</span><br><span class=\"line\">54</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">$ pip uninstall uff  <span class=\"comment\"># y</span></span><br><span class=\"line\">$ deactivate</span><br><span class=\"line\"></span><br><span class=\"line\">$ conda <span class=\"built_in\">env</span> list</span><br><span class=\"line\">$ conda create -n adanet python=3.6</span><br><span class=\"line\">$ <span class=\"built_in\">source</span> activate adanet</span><br><span class=\"line\">$ pip install tensorflow-gpu==1.*</span><br><span class=\"line\"><span class=\"comment\"># Successfully installed</span></span><br><span class=\"line\"><span class=\"comment\"># absl-py-0.9.0 astor-0.8.1 gast-0.2.2</span></span><br><span class=\"line\"><span class=\"comment\"># google-pasta-0.2.0 grpcio-1.27.2 h5py-2.10.0</span></span><br><span class=\"line\"><span class=\"comment\"># keras-applications-1.0.8 keras-preprocessing-1.1.0</span></span><br><span class=\"line\"><span class=\"comment\"># markdown-3.2.1 numpy-1.18.2 opt-einsum-3.2.0</span></span><br><span class=\"line\"><span class=\"comment\"># protobuf-3.11.3 six-1.14.0</span></span><br><span class=\"line\"><span class=\"comment\"># tensorboard-1.15.0 tensorflow-estimator-1.15.1</span></span><br><span class=\"line\"><span class=\"comment\"># tensorflow-gpu-1.15.2</span></span><br><span class=\"line\"><span class=\"comment\"># termcolor-1.1.0 werkzeug-1.0.1 wrapt-1.12.1</span></span><br><span class=\"line\">$ pip install adanet</span><br><span class=\"line\"><span class=\"comment\"># Successfully installed</span></span><br><span class=\"line\"><span class=\"comment\"># adanet-0.8.0 colorama-0.4.3 coverage-4.5.4</span></span><br><span class=\"line\"><span class=\"comment\"># mock-3.0.5 nose-1.3.7 rednose-1.3.0 termstyle-0.1.11</span></span><br><span class=\"line\"></span><br><span class=\"line\">Python 3.6.10 |Anaconda, Inc.| (default, Mar 25 2020, 23:51:54)</span><br><span class=\"line\">[GCC 7.3.0] on linux</span><br><span class=\"line\">Type <span class=\"string\">&quot;help&quot;</span>, <span class=\"string\">&quot;copyright&quot;</span>, <span class=\"string\">&quot;credits&quot;</span> or <span class=\"string\">&quot;license&quot;</span> <span class=\"keyword\">for</span> more information.</span><br><span class=\"line\">&gt;&gt;&gt; import tensorrt</span><br><span class=\"line\">Traceback (most recent call last):</span><br><span class=\"line\">  File <span class=\"string\">&quot;&lt;stdin&gt;&quot;</span>, line 1, <span class=\"keyword\">in</span> &lt;module&gt;</span><br><span class=\"line\">ModuleNotFoundError: No module named <span class=\"string\">&#x27;tensorrt&#x27;</span></span><br><span class=\"line\">&gt;&gt;&gt; import tensorflow as tf</span><br><span class=\"line\">&gt;&gt;&gt; import adanet</span><br><span class=\"line\">WARNING:tensorflow:From /home/eustomaqua/VirtualEnv/anaconda3/envs/adanet/lib/python3.6/site-packages/adanet/tf_compat/__init__.py:87: The name tf.losses.Reduction is deprecated. Please use tf.compat.v1.losses.Reduction instead.</span><br><span class=\"line\">WARNING:tensorflow:From /home/eustomaqua/VirtualEnv/anaconda3/envs/adanet/lib/python3.6/site-packages/adanet/core/tpu_estimator.py:39: The name tf.estimator.tpu.TPUEstimator is deprecated. Please use tf.compat.v1.estimator.tpu.TPUEstimator instead.</span><br><span class=\"line\">&gt;&gt;&gt;</span><br><span class=\"line\"></span><br><span class=\"line\">$ <span class=\"built_in\">cd</span> ~/Software/TensorRT-6.0.1.5</span><br><span class=\"line\">$ <span class=\"built_in\">cd</span> python</span><br><span class=\"line\">$ pip install tensorrt-6.0.1.5-cp36-none-linux_x86_64.whl</span><br><span class=\"line\">$ <span class=\"built_in\">cd</span> ../uff</span><br><span class=\"line\">$ pip install uff-0.6.5-py2.py3-none-any.whl</span><br><span class=\"line\"></span><br><span class=\"line\">Python 3.6.10 |Anaconda, Inc.| (default, Mar 25 2020, 23:51:54)</span><br><span class=\"line\">[GCC 7.3.0] on linux</span><br><span class=\"line\">Type <span class=\"string\">&quot;help&quot;</span>, <span class=\"string\">&quot;copyright&quot;</span>, <span class=\"string\">&quot;credits&quot;</span> or <span class=\"string\">&quot;license&quot;</span> <span class=\"keyword\">for</span> more information.</span><br><span class=\"line\">&gt;&gt;&gt; import tensorrt</span><br><span class=\"line\">&gt;&gt;&gt; import uff</span><br><span class=\"line\">&gt;&gt;&gt; import tensorflow as tf</span><br><span class=\"line\">&gt;&gt;&gt; import adanet</span><br><span class=\"line\">WARNING:tensorflow:From /home/eustomaqua/VirtualEnv/anaconda3/envs/adanet/lib/python3.6/site-packages/adanet/tf_compat/__init__.py:87: The name tf.losses.Reduction is deprecated. Please use tf.compat.v1.losses.Reduction instead.</span><br><span class=\"line\"></span><br><span class=\"line\">WARNING:tensorflow:From /home/eustomaqua/VirtualEnv/anaconda3/envs/adanet/lib/python3.6/site-packages/adanet/core/tpu_estimator.py:39: The name tf.estimator.tpu.TPUEstimator is deprecated. Please use tf.compat.v1.estimator.tpu.TPUEstimator instead.</span><br><span class=\"line\"></span><br><span class=\"line\">&gt;&gt;&gt;</span><br><span class=\"line\">[6]+  Stopped(SIGTSTP)        python</span><br><span class=\"line\">(adanet) ~/Software/TensorRT-6.0.1.5/uff$</span><br></pre></td></tr></table></figure>\n\n<h3 id=\"使用-deb-包安装-1\"><a href=\"#使用-deb-包安装-1\" class=\"headerlink\" title=\"使用 deb 包安装\"></a>使用 deb 包安装</h3><p>创建环境</p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br><span class=\"line\">39</span><br><span class=\"line\">40</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">$ conda <span class=\"built_in\">env</span> list</span><br><span class=\"line\">$ conda create -n adanet python=3.6  <span class=\"comment\"># tensorflow-gpu==2.1.0 adanet=0.8.0</span></span><br><span class=\"line\">$ <span class=\"built_in\">source</span> activate adanet</span><br><span class=\"line\">$ <span class=\"built_in\">source</span> deactivate</span><br><span class=\"line\">$ conda remove -n adanet -all</span><br><span class=\"line\"></span><br><span class=\"line\">$ conda create -n adanet python=3.6</span><br><span class=\"line\">$ <span class=\"built_in\">source</span> activate adanet</span><br><span class=\"line\">$ pip list</span><br><span class=\"line\">Package    Version</span><br><span class=\"line\">---------- -------------------</span><br><span class=\"line\">certifi    2019.11.28</span><br><span class=\"line\">pip        20.0.2</span><br><span class=\"line\">setuptools 46.1.3.post20200330</span><br><span class=\"line\">wheel      0.34.2</span><br><span class=\"line\"></span><br><span class=\"line\">$ pip install tensorflow-gpu==1.*</span><br><span class=\"line\"><span class=\"comment\"># Successfully installed</span></span><br><span class=\"line\"><span class=\"comment\"># absl-py-0.9.0 astor-0.8.1 gast-0.2.2</span></span><br><span class=\"line\"><span class=\"comment\"># google-pasta-0.2.0 grpcio-1.27.2 h5py-2.10.0</span></span><br><span class=\"line\"><span class=\"comment\"># keras-applications-1.0.8 keras-preprocessing-1.1.0</span></span><br><span class=\"line\"><span class=\"comment\"># markdown-3.2.1 numpy-1.18.2 opt-einsum-3.2.0</span></span><br><span class=\"line\"><span class=\"comment\"># protobuf-3.11.3 six-1.14.0</span></span><br><span class=\"line\"><span class=\"comment\"># tensorboard-1.15.0 tensorflow-estimator-1.15.1</span></span><br><span class=\"line\"><span class=\"comment\"># tensorflow-gpu-1.15.2</span></span><br><span class=\"line\"><span class=\"comment\"># termcolor-1.1.0 werkzeug-1.0.1 wrapt-1.12.1</span></span><br><span class=\"line\">$ pip install adanet</span><br><span class=\"line\"><span class=\"comment\"># Successfully installed</span></span><br><span class=\"line\"><span class=\"comment\"># adanet-0.8.0 colorama-0.4.3 coverage-4.5.4</span></span><br><span class=\"line\"><span class=\"comment\"># mock-3.0.5 nose-1.3.7 rednose-1.3.0 termstyle-0.1.11</span></span><br><span class=\"line\"></span><br><span class=\"line\">Python 3.6.10 |Anaconda, Inc.| (default, Mar 25 2020, 23:51:54)</span><br><span class=\"line\">[GCC 7.3.0] on linux</span><br><span class=\"line\">Type <span class=\"string\">&quot;help&quot;</span>, <span class=\"string\">&quot;copyright&quot;</span>, <span class=\"string\">&quot;credits&quot;</span> or <span class=\"string\">&quot;license&quot;</span> <span class=\"keyword\">for</span> more information.</span><br><span class=\"line\">&gt;&gt;&gt; import tensorflow as tf</span><br><span class=\"line\">&gt;&gt;&gt; import adanet</span><br><span class=\"line\">WARNING:tensorflow:From /home/eustomaqua/anaconda3/envs/adanet/lib/python3.6/site-packages/adanet/tf_compat/__init__.py:87: The name tf.losses.Reduction is deprecated. Please use tf.compat.v1.losses.Reduction instead.</span><br><span class=\"line\">WARNING:tensorflow:From /home/eustomaqua/anaconda3/envs/adanet/lib/python3.6/site-packages/adanet/core/tpu_estimator.py:39: The name tf.estimator.tpu.TPUEstimator is deprecated. Please use tf.compat.v1.estimator.tpu.TPUEstimator instead.</span><br><span class=\"line\">&gt;&gt;&gt;</span><br><span class=\"line\">[1]+  Stopped                 python</span><br></pre></td></tr></table></figure>\n\n<p>安装 TensorRT</p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">$ <span class=\"built_in\">cd</span> ~/Software</span><br><span class=\"line\">$ <span class=\"built_in\">ls</span></span><br><span class=\"line\">cuda-10.0</span><br><span class=\"line\">cuda-samples</span><br><span class=\"line\">nv-tensorrt-repo-ubuntu1804-cuda10.0-trt6.0.1.5-ga-20190913_1-1_amd64.deb</span><br><span class=\"line\">nv-tensorrt-repo-ubuntu1804-cuda10.0-trt7.0.0.11-ga-20191216_1-1_amd64.deb</span><br><span class=\"line\">TensorRT-6.0.1.5.Ubuntu-18.04.x86_64-gnu.cuda-10.0.cudnn7.6.tar.gz</span><br><span class=\"line\">TensorRT-7.0.0.11.Ubuntu-18.04.x86_64-gnu.cuda-10.0.cudnn7.6.tar.gz</span><br><span class=\"line\"></span><br><span class=\"line\">$ dpkg -i nv-tensorrt-repo-ubuntu1804-cuda10.0-trt6.0.1.5-ga-20190913_1-1_amd64.deb</span><br><span class=\"line\">dpkg: error: requested operation requires superuser privilege</span><br></pre></td></tr></table></figure>\n\n<p>放弃 deb 安装，回到 tar 方式</p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">$ <span class=\"built_in\">cd</span> ~/Software</span><br><span class=\"line\">$ tar -xvaf TensorRT-6.0.1.5.Ubuntu-18.04.x86_64-gnu.cuda-10.0.cudnn7.6.tar.gz</span><br><span class=\"line\">$ <span class=\"built_in\">cd</span> TensorRT-6.0.1.5</span><br><span class=\"line\">$ <span class=\"built_in\">cd</span> python</span><br><span class=\"line\">$ pip install tensorrt-6.0.1.5-cp36-none-linux_x86_64.whl</span><br><span class=\"line\">$ <span class=\"built_in\">cd</span> ../uff</span><br><span class=\"line\">$ pip install uff-0.6.5-py2.py3-none-any.whl</span><br><span class=\"line\"></span><br><span class=\"line\">$ vim ~/.bashrc</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># added by Anaconda3 installer</span></span><br><span class=\"line\"><span class=\"built_in\">export</span> PATH=<span class=\"string\">&quot;/home/eustomaqua/anaconda3/bin:<span class=\"variable\">$PATH</span>&quot;</span></span><br><span class=\"line\"><span class=\"comment\"># self added for Nvidia</span></span><br><span class=\"line\"><span class=\"built_in\">export</span> PATH=<span class=\"string\">&quot;<span class=\"variable\">$HOME</span>/Software/cuda-10.0/bin:<span class=\"variable\">$PATH</span>&quot;</span></span><br><span class=\"line\"><span class=\"built_in\">export</span> LD_LIBRARY_PATH=<span class=\"string\">&quot;<span class=\"variable\">$LD_LIBRARY_PATH</span>:<span class=\"variable\">$HOME</span>/Software/cuda-10.0/lib64/&quot;</span></span><br><span class=\"line\"><span class=\"comment\"># TensorRT</span></span><br><span class=\"line\"><span class=\"built_in\">export</span> LD_LIBRARY_PATH=<span class=\"variable\">$HOME</span>/Software/TensorRT-6.0.1.5/lib:<span class=\"variable\">$LD_LIBRARY_PATH</span></span><br><span class=\"line\"><span class=\"built_in\">export</span> CUDA_INSTALL_DIR=<span class=\"variable\">$HOME</span>/Software/cuda-10.0</span><br><span class=\"line\"><span class=\"built_in\">export</span> CUDNN_INSTALL_DIR=<span class=\"variable\">$HOME</span>/Software/cuda-10.0</span><br></pre></td></tr></table></figure>\n<p>新开终端使 <code>.bashrc</code> 生效</p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">$ <span class=\"built_in\">source</span> activate adanet</span><br><span class=\"line\">$ <span class=\"built_in\">cd</span> ~/Software/TensorRT-6.0.1.5</span><br><span class=\"line\"></span><br><span class=\"line\">Python 3.6.10 |Anaconda, Inc.| (default, Mar 25 2020, 23:51:54)</span><br><span class=\"line\">[GCC 7.3.0] on linux</span><br><span class=\"line\">Type <span class=\"string\">&quot;help&quot;</span>, <span class=\"string\">&quot;copyright&quot;</span>, <span class=\"string\">&quot;credits&quot;</span> or <span class=\"string\">&quot;license&quot;</span> <span class=\"keyword\">for</span> more information.</span><br><span class=\"line\">&gt;&gt;&gt; import tensorrt</span><br><span class=\"line\">&gt;&gt;&gt; import uff</span><br><span class=\"line\">&gt;&gt;&gt; import tensorflow as tf</span><br><span class=\"line\">&gt;&gt;&gt; import adanet</span><br><span class=\"line\">WARNING:tensorflow:From /home/eustomaqua/anaconda3/envs/adanet/lib/python3.6/site-packages/adanet/tf_compat/__init__.py:87: The name tf.losses.Reduction is deprecated. Please use tf.compat.v1.losses.Reduction instead.</span><br><span class=\"line\"></span><br><span class=\"line\">WARNING:tensorflow:From /home/eustomaqua/anaconda3/envs/adanet/lib/python3.6/site-packages/adanet/core/tpu_estimator.py:39: The name tf.estimator.tpu.TPUEstimator is deprecated. Please use tf.compat.v1.estimator.tpu.TPUEstimator instead.</span><br><span class=\"line\"></span><br><span class=\"line\">&gt;&gt;&gt;</span><br><span class=\"line\">[1]+  Stopped                 python</span><br></pre></td></tr></table></figure>\n\n<p>检查 tensorrt, uff 是否安装成功</p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">$ python</span><br><span class=\"line\">&gt;&gt;&gt; import tensorrt</span><br><span class=\"line\">&gt;&gt;&gt; tensorrt.__version__</span><br><span class=\"line\"></span><br><span class=\"line\">$ <span class=\"built_in\">cd</span> ~/Software/TensorRT-6.0.1.5</span><br><span class=\"line\">$ <span class=\"built_in\">which</span> convert-to-uff</span><br><span class=\"line\">/home/eustomaqua/anaconda3/envs/adanet/bin/convert-to-uff</span><br><span class=\"line\">$</span><br><span class=\"line\">$ <span class=\"built_in\">mkdir</span> python/data</span><br><span class=\"line\">$ <span class=\"built_in\">mkdir</span> python/data/mnist</span><br><span class=\"line\">$ <span class=\"built_in\">cp</span> ./data/mnist/lenet5.uff ./python/data/mnist/lenet5.uff</span><br><span class=\"line\">$ <span class=\"built_in\">cd</span> ./samples/sampleMNIST</span><br><span class=\"line\">$ make clean</span><br><span class=\"line\">$ make</span><br><span class=\"line\">$ <span class=\"built_in\">cd</span> ../../bin</span><br><span class=\"line\">$ ./sample_mnist</span><br><span class=\"line\">&amp;&amp;&amp;&amp; RUNNING TensorRT.sample_mnist <span class=\"comment\"># ./sample_mnist</span></span><br><span class=\"line\">[03/03/2020-07:47:01] [I] Building and running a GPU inference engine <span class=\"keyword\">for</span> MNIST</span><br><span class=\"line\">[03/03/2020-07:47:07] [I] [TRT] Detected 1 inputs and 1 output network tensors.</span><br><span class=\"line\">Could not find 8.pgm <span class=\"keyword\">in</span> data directories:</span><br><span class=\"line\">        data/mnist/</span><br><span class=\"line\">        data/samples/mnist/</span><br><span class=\"line\">&amp;&amp;&amp;&amp; FAILED</span><br></pre></td></tr></table></figure>\n\n<h3 id=\"检查-uff-的安装情况\"><a href=\"#检查-uff-的安装情况\" class=\"headerlink\" title=\"检查 uff 的安装情况\"></a>检查 uff 的安装情况</h3><p>Could not find 8.pgm in data directories:<br><a href=\"https://github.com/NVIDIA/TensorRT/issues/256\">Depreciated MNIST Sample</a><br><a href=\"https://arleyzhang.github.io/articles/c17471cb/\">TensorRT(2)-基本使用：mnist手写体识别</a><br><a href=\"https://blog.csdn.net/HaoBBNuanMM/article/details/102841685\">【代码分析】TensorRT sampleMNIST 详解</a>  </p>\n<p><a href=\"https://docs.nvidia.com/deeplearning/sdk/tensorrt-sample-support-guide/index.html\">TensorRT-sample-support-guide NVIDIA</a><br><a href=\"https://www.ibm.com/support/knowledgecenter/SS5SF7_1.6.1/navigation/wmlce_getstarted_tensorrt.html\">Getting started with PyTorch and TensorRT | IBM Knowledge Center</a>  </p>\n<p><a href=\"https://github.com/NVIDIA/TensorRT/issues/165\">Could not find 0.pgm in data directories: </a><br>Answer: <a href=\"https://github.com/NVIDIA/TensorRT/issues/256#issuecomment-568382745\">Answer in other thread:</a>  </p>\n<blockquote>\n<p>By running the download_pgms.py in the &#x2F;TensorRT-7.0.0.11&#x2F;data&#x2F;mnist, I can already get the *.pgm files.</p>\n</blockquote>\n<p>generate_pgms.py<br><a href=\"https://docs.nvidia.com/deeplearning/sdk/tensorrt-release-notes/tensorrt-6.html\">tensorrt-release-notes NVIDIA</a><br><a href=\"https://zhuanlan.zhihu.com/p/110934202\">深度学习算法优化系列十七 | TensorRT介绍，安装及如何使用？</a>  </p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">~/Software/TensorRT-6.0.1.5/bin$ dpkg -l | grep TensorRT</span><br><span class=\"line\">$ <span class=\"built_in\">cd</span> ../data/mnist</span><br><span class=\"line\">$ <span class=\"built_in\">cat</span> README.md</span><br></pre></td></tr></table></figure>\n\n<h2 id=\"总结\"><a href=\"#总结\" class=\"headerlink\" title=\"总结\"></a>总结</h2><p>在安装 tensorrt, uff 之前，需先创建虚拟环境，并安装 tensorflow-gpu&#x3D;&#x3D;1.*<br>注意 tensorflow-gpu 不能是 2.x 版本，因为 uff 与 tf2.0 不兼容  </p>\n<p>此外使用 tensorflow-gpu&#x3D;&#x3D;2.1.0 时，发现它调用的是 TensorRT 6.x ，不能用 TensorRT 7.x；<br>把 tensorflow-gpu 版本降级为 1.15.2 后，仍然可以使用 TensorRT 6.x</p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"comment\"># 1. Install CUDA 10.0.130, cuDNN 7.6.4</span></span><br><span class=\"line\"><span class=\"comment\">#    install tensorflow-gpu=2.1.0 or 1.15.2 (recommend 1.15.2 for uff)</span></span><br><span class=\"line\">$ pip install tensorflow-gpu==1.*</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 2. download TensorRT tar from NVIDIA</span></span><br><span class=\"line\">$ wget TensorRT-6.0.1.5.Ubuntu-&#123;16/18&#125;.04.x86_64-gnu.cuda-10.0.cudnn7.6.tar.gz</span><br><span class=\"line\">$ tar -xzvf TensorRT-6.0.1.5.Ubuntu-16.04.x86_64-gpu.cuda-10.0.cudnn7.6.tar.gz</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 3. .bashrc</span></span><br><span class=\"line\">$ vim ~/.bashrc</span><br></pre></td></tr></table></figure>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"comment\"># add by Anaconda3 install</span></span><br><span class=\"line\"><span class=\"built_in\">export</span> PATH=<span class=\"string\">&quot;/home/eustomaqua/VirtualEnv/anaconda3/bin:<span class=\"variable\">$PATH</span>&quot;</span></span><br><span class=\"line\"><span class=\"comment\"># self added for Nvidia</span></span><br><span class=\"line\"><span class=\"built_in\">export</span> PATH=<span class=\"variable\">$HOME</span>/Software/cuda-10.0/bin:<span class=\"variable\">$PATH</span></span><br><span class=\"line\"><span class=\"built_in\">export</span> LD_LIBRARY_PATH=<span class=\"variable\">$HOME</span>/Software/cuda-10.0/lib64:<span class=\"variable\">$LD_LIBRARY_PATH</span></span><br><span class=\"line\"><span class=\"comment\"># self modified for TensorRT</span></span><br><span class=\"line\"><span class=\"built_in\">export</span> LD_LIBRARY_PATH=<span class=\"variable\">$HOME</span>/Software/TensorRT-6.0.1.5/lib:<span class=\"variable\">$LD_LIBRARY_PATH</span></span><br><span class=\"line\"><span class=\"built_in\">export</span> CUDA_INSTALL_DIR=<span class=\"variable\">$HOME</span>/Software/cuda-10.0</span><br><span class=\"line\"><span class=\"built_in\">export</span> CUDNN_INSTALL_DIR=<span class=\"variable\">$HOME</span>/Software/cuda-10.0</span><br></pre></td></tr></table></figure>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">$ <span class=\"comment\"># source ~/.bashrc</span></span><br><span class=\"line\">$ <span class=\"built_in\">echo</span> <span class=\"variable\">$HOME</span></span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 4. install tensorrt</span></span><br><span class=\"line\">$ <span class=\"built_in\">cd</span> TensorRT-6.0.1.5</span><br><span class=\"line\">$ <span class=\"built_in\">cd</span> python</span><br><span class=\"line\">$ pip install tensorrt-6.0.1.5-cp36-none-linux_x86_64.whl</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 5. install uff</span></span><br><span class=\"line\">$ <span class=\"built_in\">cd</span> ../uff</span><br><span class=\"line\">$ pip install uff-0.6.5-py2.py3-none-any.whl</span><br></pre></td></tr></table></figure>\n<figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"comment\"># 6. check</span></span><br><span class=\"line\"><span class=\"meta\">&gt;&gt;&gt; </span><span class=\"keyword\">import</span> tensorflow <span class=\"keyword\">as</span> tf</span><br><span class=\"line\"><span class=\"meta\">&gt;&gt;&gt; </span><span class=\"keyword\">import</span> adanet</span><br><span class=\"line\"><span class=\"meta\">&gt;&gt;&gt; </span><span class=\"keyword\">import</span> tensorrt</span><br><span class=\"line\"><span class=\"meta\">&gt;&gt;&gt; </span>tensorrt.__version__</span><br><span class=\"line\"><span class=\"meta\">&gt;&gt;&gt; </span><span class=\"keyword\">import</span> uff</span><br></pre></td></tr></table></figure>\n\n<h1 id=\"References\"><a href=\"#References\" class=\"headerlink\" title=\"*References\"></a>*References</h1><p><a href=\"http://tech.it168.com/a2017/1026/3176/000003176180.shtml\">GitHub、GitLab与BitBucket应该怎么选?</a><br><a href=\"https://www.hi-linux.com/posts/14346.html\">利用 SSH 的用户配置文件 Config 管理 SSH 会话</a>  </p>\n","categories":["Records"],"tags":["Configuration","Linux","NVIDIA"]},{"title":"Setup on Linux (Ubuntu, CentOS 7)","url":"https://eustomaqua.github.io/2020/2020-02-08-Setup-Python-on-Linux/","content":"<link rel=\"stylesheet\" class=\"aplayer-secondary-style-marker\" href=\"/assets/css/APlayer.min.css\"><script src=\"/assets/js/APlayer.min.js\" class=\"aplayer-secondary-script-marker\"></script><!-- Configure -->\n\n\n<p>[TOC]</p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">$ <span class=\"built_in\">cd</span> ~</span><br><span class=\"line\">$ <span class=\"built_in\">ls</span></span><br><span class=\"line\">$</span><br><span class=\"line\">$ <span class=\"built_in\">mkdir</span> Software</span><br><span class=\"line\">$ <span class=\"comment\"># upload Anaconda*.sh</span></span><br></pre></td></tr></table></figure>\n\n<h2 id=\"Operation-System\"><a href=\"#Operation-System\" class=\"headerlink\" title=\"Operation System\"></a>Operation System</h2><h3 id=\"Ubuntu\"><a href=\"#Ubuntu\" class=\"headerlink\" title=\"Ubuntu\"></a>Ubuntu</h3><figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">$ <span class=\"comment\"># 发行版本号 (a,b)</span></span><br><span class=\"line\">$ <span class=\"built_in\">cat</span> /etc/issue</span><br><span class=\"line\">Ubuntu 18.04.3 LTS \\n \\l</span><br><span class=\"line\">$ lsb_release -a</span><br><span class=\"line\">No LSB modules are available.</span><br><span class=\"line\">Distributor ID: Ubuntu</span><br><span class=\"line\">Description:    Ubuntu 18.04.3 LTS</span><br><span class=\"line\">Release:        18.04</span><br><span class=\"line\">Codename:       bionic</span><br><span class=\"line\">$ <span class=\"comment\"># 查看内核版本号</span></span><br><span class=\"line\">$ <span class=\"built_in\">uname</span> -r</span><br><span class=\"line\">5.0.0-37-generic</span><br></pre></td></tr></table></figure>\n\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">$ <span class=\"built_in\">cat</span> /etc/issue</span><br><span class=\"line\">Ubuntu 16.04.4 LTS \\n \\l</span><br><span class=\"line\"></span><br><span class=\"line\">$ lsb_release -a</span><br><span class=\"line\">No LSB modules are available.</span><br><span class=\"line\">Distributor ID: Ubuntu</span><br><span class=\"line\">Description:    Ubuntu 16.04.4 LTS</span><br><span class=\"line\">Release:    16.04</span><br><span class=\"line\">Codename:   xenial</span><br><span class=\"line\">$ <span class=\"built_in\">uname</span> -r</span><br><span class=\"line\">4.15.0-55-generic</span><br><span class=\"line\">$ <span class=\"built_in\">uname</span> -a</span><br><span class=\"line\">Linux ubuntu-VirtualBox 4.15.0-55-generic <span class=\"comment\">#60~16.04.2-Ubuntu SMP Thu Jul 4 09:03:09 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux</span></span><br><span class=\"line\">$ getconf LONG_BIT</span><br><span class=\"line\">64</span><br></pre></td></tr></table></figure>\n\n<h3 id=\"Cent-OS\"><a href=\"#Cent-OS\" class=\"headerlink\" title=\"Cent OS\"></a>Cent OS</h3><figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br><span class=\"line\">39</span><br><span class=\"line\">40</span><br><span class=\"line\">41</span><br><span class=\"line\">42</span><br><span class=\"line\">43</span><br><span class=\"line\">44</span><br><span class=\"line\">45</span><br><span class=\"line\">46</span><br><span class=\"line\">47</span><br><span class=\"line\">48</span><br><span class=\"line\">49</span><br><span class=\"line\">50</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">$ <span class=\"comment\"># 查看 Cent OS 系统版本</span></span><br><span class=\"line\">$ <span class=\"built_in\">cat</span> /etc/redhat-release</span><br><span class=\"line\">CentOS release 6.10 (Final)</span><br><span class=\"line\">$ <span class=\"comment\"># 1) 查看内核版本</span></span><br><span class=\"line\">$ <span class=\"built_in\">cat</span>  /proc/version</span><br><span class=\"line\">Linux version 2.6.32-754.14.2.el6.x86_64 (mockbuild@x86-01.bsys.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-23) (GCC) ) <span class=\"comment\">#1 SMP Tue May 14 19:35:42 UTC 2019</span></span><br><span class=\"line\">$ <span class=\"comment\"># 2) 显示系统名、节点名称、操作系统的发行版号、操作系统版本、运行系统的机器 ID 号</span></span><br><span class=\"line\">$ <span class=\"built_in\">uname</span> -a</span><br><span class=\"line\">Linux ubri01 2.6.32-754.14.2.el6.x86_64 <span class=\"comment\">#1 SMP Tue May 14 19:35:42 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux</span></span><br><span class=\"line\">$ <span class=\"comment\"># 3) 显示操作系统的发行版号</span></span><br><span class=\"line\">$ <span class=\"built_in\">uname</span> -r</span><br><span class=\"line\">2.6.32-754.14.2.el6.x86_64</span><br><span class=\"line\"></span><br><span class=\"line\">$ <span class=\"comment\"># 查看linux版本</span></span><br><span class=\"line\">$ <span class=\"comment\"># 1) 列出所有版本信息</span></span><br><span class=\"line\">$ <span class=\"comment\"># 注: 这个命令适用于所有的linux，包括Redhat、SuSE、Debian等发行版。</span></span><br><span class=\"line\">$ lsb_release -a</span><br><span class=\"line\">LSB Version:    :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch</span><br><span class=\"line\">Distributor ID: CentOS</span><br><span class=\"line\">Description:    CentOS release 6.10 (Final)</span><br><span class=\"line\">Release:        6.10</span><br><span class=\"line\">Codename:       Final</span><br><span class=\"line\">$ <span class=\"built_in\">cat</span> /etc/issue</span><br><span class=\"line\">CentOS release 6.10 (Final)</span><br><span class=\"line\">Kernel \\r on an \\m</span><br><span class=\"line\">$ <span class=\"built_in\">cat</span> /etc/redhat-release</span><br><span class=\"line\">CentOS release 6.10 (Final)</span><br><span class=\"line\"></span><br><span class=\"line\">$ <span class=\"comment\"># 查看系统是64位还是32位</span></span><br><span class=\"line\">$ getconf LONG_BIT</span><br><span class=\"line\">64</span><br><span class=\"line\">$ file /bin/ls</span><br><span class=\"line\">/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), <span class=\"keyword\">for</span> GNU/Linux 2.6.18, stripped</span><br><span class=\"line\"></span><br><span class=\"line\">$ <span class=\"comment\"># centos查看系统cpu个数、核心数、线程数</span></span><br><span class=\"line\">$ <span class=\"comment\"># 1. 查看物理cpu个数</span></span><br><span class=\"line\">$ grep <span class=\"string\">&#x27;physical id&#x27;</span> /proc/cpuinfo | <span class=\"built_in\">sort</span> -u | <span class=\"built_in\">wc</span> -l</span><br><span class=\"line\">2</span><br><span class=\"line\">$ <span class=\"comment\"># 2. 查看核心数量，即每个物理CPU中core的个数(即核数)</span></span><br><span class=\"line\">$ grep <span class=\"string\">&#x27;core id&#x27;</span> /proc/cpuinfo | <span class=\"built_in\">sort</span> -u | <span class=\"built_in\">wc</span> -l</span><br><span class=\"line\">14</span><br><span class=\"line\">$ <span class=\"comment\"># 3. 查看线程数（逻辑CPU的个数）</span></span><br><span class=\"line\">$ grep <span class=\"string\">&#x27;processor&#x27;</span> /proc/cpuinfo | <span class=\"built_in\">sort</span> -u | <span class=\"built_in\">wc</span> -l</span><br><span class=\"line\">56</span><br><span class=\"line\">$ <span class=\"comment\"># 4.查看cpu型号</span></span><br><span class=\"line\">$ dmidecode -s processor-version</span><br><span class=\"line\">/dev/mem: Permission denied</span><br><span class=\"line\">$ <span class=\"comment\"># 5.查看内存方法</span></span><br><span class=\"line\">$ grep MemTotal /proc/meminfo</span><br><span class=\"line\">MemTotal:       132067272 kB</span><br></pre></td></tr></table></figure>\n\n<h3 id=\"refs\"><a href=\"#refs\" class=\"headerlink\" title=\"* refs\"></a>* refs</h3><p><a href=\"https://blog.csdn.net/debug_cpp/article/details/2687067\">如何查看ubuntu的内核版本和发行版本号？</a><br><a href=\"https://blog.csdn.net/u011630575/article/details/51426429\">centos系统查看系统版本、内核版本、系统位数、cpu个数、核心数、线程数</a></p>\n<h2 id=\"Anaconda-Python\"><a href=\"#Anaconda-Python\" class=\"headerlink\" title=\"Anaconda, Python\"></a>Anaconda, Python</h2><h3 id=\"Anaconda\"><a href=\"#Anaconda\" class=\"headerlink\" title=\"Anaconda\"></a>Anaconda</h3><p>Download:<br><a href=\"https://mirrors.tuna.tsinghua.edu.cn/news/restore-anaconda/\">mirrors.thu</a><br><a href=\"https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/\">Anaconda3-5.2.0-Linux-x86_64.sh</a></p>\n<p>Install:  </p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br><span class=\"line\">39</span><br><span class=\"line\">40</span><br><span class=\"line\">41</span><br><span class=\"line\">42</span><br><span class=\"line\">43</span><br><span class=\"line\">44</span><br><span class=\"line\">45</span><br><span class=\"line\">46</span><br><span class=\"line\">47</span><br><span class=\"line\">48</span><br><span class=\"line\">49</span><br><span class=\"line\">50</span><br><span class=\"line\">51</span><br><span class=\"line\">52</span><br><span class=\"line\">53</span><br><span class=\"line\">54</span><br><span class=\"line\">55</span><br><span class=\"line\">56</span><br><span class=\"line\">57</span><br><span class=\"line\">58</span><br><span class=\"line\">59</span><br><span class=\"line\">60</span><br><span class=\"line\">61</span><br><span class=\"line\">62</span><br><span class=\"line\">63</span><br><span class=\"line\">64</span><br><span class=\"line\">65</span><br><span class=\"line\">66</span><br><span class=\"line\">67</span><br><span class=\"line\">68</span><br><span class=\"line\">69</span><br><span class=\"line\">70</span><br><span class=\"line\">71</span><br><span class=\"line\">72</span><br><span class=\"line\">73</span><br><span class=\"line\">74</span><br><span class=\"line\">75</span><br><span class=\"line\">76</span><br><span class=\"line\">77</span><br><span class=\"line\">78</span><br><span class=\"line\">79</span><br><span class=\"line\">80</span><br><span class=\"line\">81</span><br><span class=\"line\">82</span><br><span class=\"line\">83</span><br><span class=\"line\">84</span><br><span class=\"line\">85</span><br><span class=\"line\">86</span><br><span class=\"line\">87</span><br><span class=\"line\">88</span><br><span class=\"line\">89</span><br><span class=\"line\">90</span><br><span class=\"line\">91</span><br><span class=\"line\">92</span><br><span class=\"line\">93</span><br><span class=\"line\">94</span><br><span class=\"line\">95</span><br><span class=\"line\">96</span><br><span class=\"line\">97</span><br><span class=\"line\">98</span><br><span class=\"line\">99</span><br><span class=\"line\">100</span><br><span class=\"line\">101</span><br><span class=\"line\">102</span><br><span class=\"line\">103</span><br><span class=\"line\">104</span><br><span class=\"line\">105</span><br><span class=\"line\">106</span><br><span class=\"line\">107</span><br><span class=\"line\">108</span><br><span class=\"line\">109</span><br><span class=\"line\">110</span><br><span class=\"line\">111</span><br><span class=\"line\">112</span><br><span class=\"line\">113</span><br><span class=\"line\">114</span><br><span class=\"line\">115</span><br><span class=\"line\">116</span><br><span class=\"line\">117</span><br><span class=\"line\">118</span><br><span class=\"line\">119</span><br><span class=\"line\">120</span><br><span class=\"line\">121</span><br><span class=\"line\">122</span><br><span class=\"line\">123</span><br><span class=\"line\">124</span><br><span class=\"line\">125</span><br><span class=\"line\">126</span><br><span class=\"line\">127</span><br><span class=\"line\">128</span><br><span class=\"line\">129</span><br><span class=\"line\">130</span><br><span class=\"line\">131</span><br><span class=\"line\">132</span><br><span class=\"line\">133</span><br><span class=\"line\">134</span><br><span class=\"line\">135</span><br><span class=\"line\">136</span><br><span class=\"line\">137</span><br><span class=\"line\">138</span><br><span class=\"line\">139</span><br><span class=\"line\">140</span><br><span class=\"line\">141</span><br><span class=\"line\">142</span><br><span class=\"line\">143</span><br><span class=\"line\">144</span><br><span class=\"line\">145</span><br><span class=\"line\">146</span><br><span class=\"line\">147</span><br><span class=\"line\">148</span><br><span class=\"line\">149</span><br><span class=\"line\">150</span><br><span class=\"line\">151</span><br><span class=\"line\">152</span><br><span class=\"line\">153</span><br><span class=\"line\">154</span><br><span class=\"line\">155</span><br><span class=\"line\">156</span><br><span class=\"line\">157</span><br><span class=\"line\">158</span><br><span class=\"line\">159</span><br><span class=\"line\">160</span><br><span class=\"line\">161</span><br><span class=\"line\">162</span><br><span class=\"line\">163</span><br><span class=\"line\">164</span><br><span class=\"line\">165</span><br><span class=\"line\">166</span><br><span class=\"line\">167</span><br><span class=\"line\">168</span><br><span class=\"line\">169</span><br><span class=\"line\">170</span><br><span class=\"line\">171</span><br><span class=\"line\">172</span><br><span class=\"line\">173</span><br><span class=\"line\">174</span><br><span class=\"line\">175</span><br><span class=\"line\">176</span><br><span class=\"line\">177</span><br><span class=\"line\">178</span><br><span class=\"line\">179</span><br><span class=\"line\">180</span><br><span class=\"line\">181</span><br><span class=\"line\">182</span><br><span class=\"line\">183</span><br><span class=\"line\">184</span><br><span class=\"line\">185</span><br><span class=\"line\">186</span><br><span class=\"line\">187</span><br><span class=\"line\">188</span><br><span class=\"line\">189</span><br><span class=\"line\">190</span><br><span class=\"line\">191</span><br><span class=\"line\">192</span><br><span class=\"line\">193</span><br><span class=\"line\">194</span><br><span class=\"line\">195</span><br><span class=\"line\">196</span><br><span class=\"line\">197</span><br><span class=\"line\">198</span><br><span class=\"line\">199</span><br><span class=\"line\">200</span><br><span class=\"line\">201</span><br><span class=\"line\">202</span><br><span class=\"line\">203</span><br><span class=\"line\">204</span><br><span class=\"line\">205</span><br><span class=\"line\">206</span><br><span class=\"line\">207</span><br><span class=\"line\">208</span><br><span class=\"line\">209</span><br><span class=\"line\">210</span><br><span class=\"line\">211</span><br><span class=\"line\">212</span><br><span class=\"line\">213</span><br><span class=\"line\">214</span><br><span class=\"line\">215</span><br><span class=\"line\">216</span><br><span class=\"line\">217</span><br><span class=\"line\">218</span><br><span class=\"line\">219</span><br><span class=\"line\">220</span><br><span class=\"line\">221</span><br><span class=\"line\">222</span><br><span class=\"line\">223</span><br><span class=\"line\">224</span><br><span class=\"line\">225</span><br><span class=\"line\">226</span><br><span class=\"line\">227</span><br><span class=\"line\">228</span><br><span class=\"line\">229</span><br><span class=\"line\">230</span><br><span class=\"line\">231</span><br><span class=\"line\">232</span><br><span class=\"line\">233</span><br><span class=\"line\">234</span><br><span class=\"line\">235</span><br><span class=\"line\">236</span><br><span class=\"line\">237</span><br><span class=\"line\">238</span><br><span class=\"line\">239</span><br><span class=\"line\">240</span><br><span class=\"line\">241</span><br><span class=\"line\">242</span><br><span class=\"line\">243</span><br><span class=\"line\">244</span><br><span class=\"line\">245</span><br><span class=\"line\">246</span><br><span class=\"line\">247</span><br><span class=\"line\">248</span><br><span class=\"line\">249</span><br><span class=\"line\">250</span><br><span class=\"line\">251</span><br><span class=\"line\">252</span><br><span class=\"line\">253</span><br><span class=\"line\">254</span><br><span class=\"line\">255</span><br><span class=\"line\">256</span><br><span class=\"line\">257</span><br><span class=\"line\">258</span><br><span class=\"line\">259</span><br><span class=\"line\">260</span><br><span class=\"line\">261</span><br><span class=\"line\">262</span><br><span class=\"line\">263</span><br><span class=\"line\">264</span><br><span class=\"line\">265</span><br><span class=\"line\">266</span><br><span class=\"line\">267</span><br><span class=\"line\">268</span><br><span class=\"line\">269</span><br><span class=\"line\">270</span><br><span class=\"line\">271</span><br><span class=\"line\">272</span><br><span class=\"line\">273</span><br><span class=\"line\">274</span><br><span class=\"line\">275</span><br><span class=\"line\">276</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">~$ <span class=\"built_in\">cd</span> ~/Software</span><br><span class=\"line\">~/Software$ ./Anaconda3-5.2.0-Linux-x86_64.sh</span><br><span class=\"line\">-bash: ./Anaconda3-5.2.0-Linux-x86_64.sh: Permission denied</span><br><span class=\"line\">$ bash ./Anaconda3-5.2.0-Linux-x86_64.sh</span><br><span class=\"line\"></span><br><span class=\"line\">Welcome to Anaconda3 5.2.0</span><br><span class=\"line\"></span><br><span class=\"line\">In order to <span class=\"built_in\">continue</span> the installation process, please review the license</span><br><span class=\"line\">agreement.</span><br><span class=\"line\">Please, press ENTER to <span class=\"built_in\">continue</span></span><br><span class=\"line\">&gt;&gt;&gt;</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">&gt;&gt;&gt; Please answer <span class=\"string\">&#x27;yes&#x27;</span> or <span class=\"string\">&#x27;no&#x27;</span>:<span class=\"string\">&#x27;</span></span><br><span class=\"line\"><span class=\"string\">&gt;&gt;&gt; yes</span></span><br><span class=\"line\"><span class=\"string\"></span></span><br><span class=\"line\"><span class=\"string\">Anaconda3 will now be installed into this location:</span></span><br><span class=\"line\"><span class=\"string\">/home/eustomaqua/anaconda3</span></span><br><span class=\"line\"><span class=\"string\"></span></span><br><span class=\"line\"><span class=\"string\">  - Press ENTER to confirm the location</span></span><br><span class=\"line\"><span class=\"string\">  - Press CTRL-C to abort the installation</span></span><br><span class=\"line\"><span class=\"string\">  - Or specify a different location below</span></span><br><span class=\"line\"><span class=\"string\"></span></span><br><span class=\"line\"><span class=\"string\">[/home/eustomaqua/anaconda3] &gt;&gt;&gt; &#x27;</span>/home/eustomaqua/Software/anaconda3</span><br><span class=\"line\">./Anaconda3-5.2.0-Linux-x86_64.sh: <span class=\"built_in\">eval</span>: line 301: unexpected EOF <span class=\"keyword\">while</span> looking <span class=\"keyword\">for</span> matching `<span class=\"string\">&#x27;&#x27;</span></span><br><span class=\"line\">./Anaconda3-5.2.0-Linux-x86_64.sh: <span class=\"built_in\">eval</span>: line 302: syntax error: unexpected end of file</span><br><span class=\"line\">PREFIX=/home/eustomaqua/anaconda3</span><br><span class=\"line\">installing: python-3.6.5-hc3d631a_2 ...</span><br><span class=\"line\">Python 3.6.5 :: Anaconda, Inc.</span><br><span class=\"line\">installing: blas-1.0-mkl ...</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">installing: anaconda-5.2.0-py36_3 ...</span><br><span class=\"line\">installation finished.</span><br><span class=\"line\">Do you wish the installer to prepend the Anaconda3 install location</span><br><span class=\"line\">to PATH <span class=\"keyword\">in</span> your /home/eustomaqua/.bashrc ? [<span class=\"built_in\">yes</span>|no]</span><br><span class=\"line\">[no] &gt;&gt;&gt; <span class=\"built_in\">yes</span></span><br><span class=\"line\"></span><br><span class=\"line\">Appending <span class=\"built_in\">source</span> /home/eustomaqua/anaconda3/bin/activate to /home/eustomaqua/.bashrc</span><br><span class=\"line\">A backup will be made to: /home/eustomaqua/.bashrc-anaconda3.bak</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">For this change to become active, you have to open a new terminal.</span><br><span class=\"line\"></span><br><span class=\"line\">Thank you <span class=\"keyword\">for</span> installing Anaconda3!</span><br><span class=\"line\"></span><br><span class=\"line\">===========================================================================</span><br><span class=\"line\"></span><br><span class=\"line\">Anaconda is partnered with Microsoft! Microsoft VSCode is a streamlined</span><br><span class=\"line\">code editor with support <span class=\"keyword\">for</span> development operations like debugging, task</span><br><span class=\"line\">running and version control.</span><br><span class=\"line\"></span><br><span class=\"line\">To install Visual Studio Code, you will need:</span><br><span class=\"line\">  - Administrator Privileges</span><br><span class=\"line\">  - Internet connectivity</span><br><span class=\"line\"></span><br><span class=\"line\">Visual Studio Code License: https://code.visualstudio.com/license</span><br><span class=\"line\"></span><br><span class=\"line\">Do you wish to proceed with the installation of Microsoft VSCode? [<span class=\"built_in\">yes</span>|no]</span><br><span class=\"line\">&gt;&gt;&gt; <span class=\"built_in\">yes</span></span><br><span class=\"line\">Proceeding with installation of Microsoft VSCode</span><br><span class=\"line\">VSCode is already installed!</span><br><span class=\"line\">~/Software$</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">~/Software$</span><br><span class=\"line\">~/Software$ python</span><br><span class=\"line\">Python 2.7.17 (default, Nov  7 2019, 10:07:09)</span><br><span class=\"line\">[GCC 7.4.0] on linux2</span><br><span class=\"line\">Type <span class=\"string\">&quot;help&quot;</span>, <span class=\"string\">&quot;copyright&quot;</span>, <span class=\"string\">&quot;credits&quot;</span> or <span class=\"string\">&quot;license&quot;</span> <span class=\"keyword\">for</span> more information.</span><br><span class=\"line\">&gt;&gt;&gt;</span><br><span class=\"line\">[1]+  Stopped                 python</span><br><span class=\"line\">~/Software$ <span class=\"built_in\">source</span> ~/.bashrc</span><br><span class=\"line\">~/Software$ python</span><br><span class=\"line\">Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56)</span><br><span class=\"line\">[GCC 7.2.0] on linux</span><br><span class=\"line\">Type <span class=\"string\">&quot;help&quot;</span>, <span class=\"string\">&quot;copyright&quot;</span>, <span class=\"string\">&quot;credits&quot;</span> or <span class=\"string\">&quot;license&quot;</span> <span class=\"keyword\">for</span> more information.</span><br><span class=\"line\">&gt;&gt;&gt;</span><br><span class=\"line\">[2]+  Stopped                 python</span><br><span class=\"line\">~/Software$</span><br><span class=\"line\">~/Software$ pip list</span><br><span class=\"line\">Package                            Version</span><br><span class=\"line\">---------------------------------- ---------</span><br><span class=\"line\">alabaster                          0.7.10</span><br><span class=\"line\">anaconda-client                    1.6.14</span><br><span class=\"line\">anaconda-navigator                 1.8.7</span><br><span class=\"line\">anaconda-project                   0.8.2</span><br><span class=\"line\">asn1crypto                         0.24.0</span><br><span class=\"line\">astroid                            1.6.3</span><br><span class=\"line\">astropy                            3.0.2</span><br><span class=\"line\">attrs                              18.1.0</span><br><span class=\"line\">Babel                              2.5.3</span><br><span class=\"line\">backcall                           0.1.0</span><br><span class=\"line\">backports.shutil-get-terminal-size 1.0.0</span><br><span class=\"line\">beautifulsoup4                     4.6.0</span><br><span class=\"line\">bitarray                           0.8.1</span><br><span class=\"line\">bkcharts                           0.2</span><br><span class=\"line\">blaze                              0.11.3</span><br><span class=\"line\">bleach                             2.1.3</span><br><span class=\"line\">bokeh                              0.12.16</span><br><span class=\"line\">boto                               2.48.0</span><br><span class=\"line\">Bottleneck                         1.2.1</span><br><span class=\"line\">certifi                            2018.4.16</span><br><span class=\"line\">cffi                               1.11.5</span><br><span class=\"line\">chardet                            3.0.4</span><br><span class=\"line\">click                              6.7</span><br><span class=\"line\">cloudpickle                        0.5.3</span><br><span class=\"line\">clyent                             1.2.2</span><br><span class=\"line\">colorama                           0.3.9</span><br><span class=\"line\">conda                              4.5.4</span><br><span class=\"line\">conda-build                        3.10.5</span><br><span class=\"line\">conda-verify                       2.0.0</span><br><span class=\"line\">contextlib2                        0.5.5</span><br><span class=\"line\">cryptography                       2.2.2</span><br><span class=\"line\">cycler                             0.10.0</span><br><span class=\"line\">Cython                             0.28.2</span><br><span class=\"line\">cytoolz                            0.9.0.1</span><br><span class=\"line\">dask                               0.17.5</span><br><span class=\"line\">datashape                          0.5.4</span><br><span class=\"line\">decorator                          4.3.0</span><br><span class=\"line\">distributed                        1.21.8</span><br><span class=\"line\">docutils                           0.14</span><br><span class=\"line\">entrypoints                        0.2.3</span><br><span class=\"line\">et-xmlfile                         1.0.1</span><br><span class=\"line\">fastcache                          1.0.2</span><br><span class=\"line\">filelock                           3.0.4</span><br><span class=\"line\">Flask                              1.0.2</span><br><span class=\"line\">Flask-Cors                         3.0.4</span><br><span class=\"line\">gevent                             1.3.0</span><br><span class=\"line\">glob2                              0.6</span><br><span class=\"line\">gmpy2                              2.0.8</span><br><span class=\"line\">greenlet                           0.4.13</span><br><span class=\"line\">h5py                               2.7.1</span><br><span class=\"line\">heapdict                           1.0.0</span><br><span class=\"line\">html5lib                           1.0.1</span><br><span class=\"line\">idna                               2.6</span><br><span class=\"line\">imageio                            2.3.0</span><br><span class=\"line\">imagesize                          1.0.0</span><br><span class=\"line\">ipykernel                          4.8.2</span><br><span class=\"line\">ipython                            6.4.0</span><br><span class=\"line\">ipython-genutils                   0.2.0</span><br><span class=\"line\">ipywidgets                         7.2.1</span><br><span class=\"line\">isort                              4.3.4</span><br><span class=\"line\">itsdangerous                       0.24</span><br><span class=\"line\">jdcal                              1.4</span><br><span class=\"line\">jedi                               0.12.0</span><br><span class=\"line\">Jinja2                             2.10</span><br><span class=\"line\">jsonschema                         2.6.0</span><br><span class=\"line\">jupyter                            1.0.0</span><br><span class=\"line\">jupyter-client                     5.2.3</span><br><span class=\"line\">jupyter-console                    5.2.0</span><br><span class=\"line\">jupyter-core                       4.4.0</span><br><span class=\"line\">jupyterlab                         0.32.1</span><br><span class=\"line\">jupyterlab-launcher                0.10.5</span><br><span class=\"line\">kiwisolver                         1.0.1</span><br><span class=\"line\">lazy-object-proxy                  1.3.1</span><br><span class=\"line\">llvmlite                           0.23.1</span><br><span class=\"line\">locket                             0.2.0</span><br><span class=\"line\">lxml                               4.2.1</span><br><span class=\"line\">MarkupSafe                         1.0</span><br><span class=\"line\">matplotlib                         2.2.2</span><br><span class=\"line\">mccabe                             0.6.1</span><br><span class=\"line\">mistune                            0.8.3</span><br><span class=\"line\">mkl-fft                            1.0.0</span><br><span class=\"line\">mkl-random                         1.0.1</span><br><span class=\"line\">more-itertools                     4.1.0</span><br><span class=\"line\">mpmath                             1.0.0</span><br><span class=\"line\">msgpack-python                     0.5.6</span><br><span class=\"line\">multipledispatch                   0.5.0</span><br><span class=\"line\">navigator-updater                  0.2.1</span><br><span class=\"line\">nbconvert                          5.3.1</span><br><span class=\"line\">nbformat                           4.4.0</span><br><span class=\"line\">networkx                           2.1</span><br><span class=\"line\">nltk                               3.3</span><br><span class=\"line\">nose                               1.3.7</span><br><span class=\"line\">notebook                           5.5.0</span><br><span class=\"line\">numba                              0.38.0</span><br><span class=\"line\">numexpr                            2.6.5</span><br><span class=\"line\">numpy                              1.14.3</span><br><span class=\"line\">numpydoc                           0.8.0</span><br><span class=\"line\">odo                                0.5.1</span><br><span class=\"line\">olefile                            0.45.1</span><br><span class=\"line\">openpyxl                           2.5.3</span><br><span class=\"line\">packaging                          17.1</span><br><span class=\"line\">pandas                             0.23.0</span><br><span class=\"line\">pandocfilters                      1.4.2</span><br><span class=\"line\">parso                              0.2.0</span><br><span class=\"line\">partd                              0.3.8</span><br><span class=\"line\">path.py                            11.0.1</span><br><span class=\"line\">pathlib2                           2.3.2</span><br><span class=\"line\">patsy                              0.5.0</span><br><span class=\"line\">pep8                               1.7.1</span><br><span class=\"line\">pexpect                            4.5.0</span><br><span class=\"line\">pickleshare                        0.7.4</span><br><span class=\"line\">Pillow                             5.1.0</span><br><span class=\"line\">pip                                10.0.1</span><br><span class=\"line\">pkginfo                            1.4.2</span><br><span class=\"line\">pluggy                             0.6.0</span><br><span class=\"line\">ply                                3.11</span><br><span class=\"line\">prompt-toolkit                     1.0.15</span><br><span class=\"line\">psutil                             5.4.5</span><br><span class=\"line\">ptyprocess                         0.5.2</span><br><span class=\"line\">py                                 1.5.3</span><br><span class=\"line\">pycodestyle                        2.4.0</span><br><span class=\"line\">pycosat                            0.6.3</span><br><span class=\"line\">pycparser                          2.18</span><br><span class=\"line\">pycrypto                           2.6.1</span><br><span class=\"line\">pycurl                             7.43.0.1</span><br><span class=\"line\">pyflakes                           1.6.0</span><br><span class=\"line\">Pygments                           2.2.0</span><br><span class=\"line\">pylint                             1.8.4</span><br><span class=\"line\">pyodbc                             4.0.23</span><br><span class=\"line\">pyOpenSSL                          18.0.0</span><br><span class=\"line\">pyparsing                          2.2.0</span><br><span class=\"line\">PySocks                            1.6.8</span><br><span class=\"line\">pytest                             3.5.1</span><br><span class=\"line\">pytest-arraydiff                   0.2</span><br><span class=\"line\">pytest-astropy                     0.3.0</span><br><span class=\"line\">pytest-doctestplus                 0.1.3</span><br><span class=\"line\">pytest-openfiles                   0.3.0</span><br><span class=\"line\">pytest-remotedata                  0.2.1</span><br><span class=\"line\">python-dateutil                    2.7.3</span><br><span class=\"line\">pytz                               2018.4</span><br><span class=\"line\">PyWavelets                         0.5.2</span><br><span class=\"line\">PyYAML                             3.12</span><br><span class=\"line\">pyzmq                              17.0.0</span><br><span class=\"line\">QtAwesome                          0.4.4</span><br><span class=\"line\">qtconsole                          4.3.1</span><br><span class=\"line\">QtPy                               1.4.1</span><br><span class=\"line\">requests                           2.18.4</span><br><span class=\"line\">rope                               0.10.7</span><br><span class=\"line\">ruamel-yaml                        0.15.35</span><br><span class=\"line\">scikit-image                       0.13.1</span><br><span class=\"line\">scikit-learn                       0.19.1</span><br><span class=\"line\">scipy                              1.1.0</span><br><span class=\"line\">seaborn                            0.8.1</span><br><span class=\"line\">Send2Trash                         1.5.0</span><br><span class=\"line\">setuptools                         39.1.0</span><br><span class=\"line\">simplegeneric                      0.8.1</span><br><span class=\"line\">singledispatch                     3.4.0.3</span><br><span class=\"line\">six                                1.11.0</span><br><span class=\"line\">snowballstemmer                    1.2.1</span><br><span class=\"line\">sortedcollections                  0.6.1</span><br><span class=\"line\">sortedcontainers                   1.5.10</span><br><span class=\"line\">Sphinx                             1.7.4</span><br><span class=\"line\">sphinxcontrib-websupport           1.0.1</span><br><span class=\"line\">spyder                             3.2.8</span><br><span class=\"line\">SQLAlchemy                         1.2.7</span><br><span class=\"line\">statsmodels                        0.9.0</span><br><span class=\"line\">sympy                              1.1.1</span><br><span class=\"line\">tables                             3.4.3</span><br><span class=\"line\">tblib                              1.3.2</span><br><span class=\"line\">terminado                          0.8.1</span><br><span class=\"line\">testpath                           0.3.1</span><br><span class=\"line\">toolz                              0.9.0</span><br><span class=\"line\">tornado                            5.0.2</span><br><span class=\"line\">traitlets                          4.3.2</span><br><span class=\"line\">typing                             3.6.4</span><br><span class=\"line\">unicodecsv                         0.14.1</span><br><span class=\"line\">urllib3                            1.22</span><br><span class=\"line\">wcwidth                            0.1.7</span><br><span class=\"line\">webencodings                       0.5.1</span><br><span class=\"line\">Werkzeug                           0.14.1</span><br><span class=\"line\">wheel                              0.31.1</span><br><span class=\"line\">widgetsnbextension                 3.2.1</span><br><span class=\"line\">wrapt                              1.10.11</span><br><span class=\"line\">xlrd                               1.1.0</span><br><span class=\"line\">XlsxWriter                         1.0.4</span><br><span class=\"line\">xlwt                               1.3.0</span><br><span class=\"line\">zict                               0.1.3</span><br><span class=\"line\">You are using pip version 10.0.1, however version 20.0.2 is available.</span><br><span class=\"line\">You should consider upgrading via the <span class=\"string\">&#x27;pip install --upgrade pip&#x27;</span> <span class=\"built_in\">command</span>.</span><br><span class=\"line\">~/Software$</span><br></pre></td></tr></table></figure>\n\n\n<h3 id=\"Python\"><a href=\"#Python\" class=\"headerlink\" title=\"Python\"></a>Python</h3><figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">~/Software$ <span class=\"built_in\">rm</span> -r Anaconda3-5.2.0-Linux-x86_64.sh</span><br><span class=\"line\">$</span><br><span class=\"line\">$ pip install packages</span><br><span class=\"line\">$ pip install -U packages <span class=\"comment\"># pip install packages --upgrade</span></span><br><span class=\"line\">$ pip uninstall packages</span><br></pre></td></tr></table></figure>\n\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">$ <span class=\"comment\"># 使用 Anaconda 创建其他 Python 环境</span></span><br><span class=\"line\">$ conda create -n python2 python=2.7</span><br><span class=\"line\">$ <span class=\"built_in\">source</span> activate python2</span><br><span class=\"line\">$</span><br><span class=\"line\">$ <span class=\"comment\"># 切换 pip 源</span></span><br><span class=\"line\">$ <span class=\"comment\"># 如果遇到网络问题，可以使用清华大学的镜像：</span></span><br><span class=\"line\">$ pip config <span class=\"built_in\">set</span> global.index-url https://pypi.tuna.tsinghua.edu.cn/simple</span><br></pre></td></tr></table></figure>\n\n<h3 id=\"conda\"><a href=\"#conda\" class=\"headerlink\" title=\"conda\"></a>conda</h3><figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br><span class=\"line\">39</span><br><span class=\"line\">40</span><br><span class=\"line\">41</span><br><span class=\"line\">42</span><br><span class=\"line\">43</span><br><span class=\"line\">44</span><br><span class=\"line\">45</span><br><span class=\"line\">46</span><br><span class=\"line\">47</span><br><span class=\"line\">48</span><br><span class=\"line\">49</span><br><span class=\"line\">50</span><br><span class=\"line\">51</span><br><span class=\"line\">52</span><br><span class=\"line\">53</span><br><span class=\"line\">54</span><br><span class=\"line\">55</span><br><span class=\"line\">56</span><br><span class=\"line\">57</span><br><span class=\"line\">58</span><br><span class=\"line\">59</span><br><span class=\"line\">60</span><br><span class=\"line\">61</span><br><span class=\"line\">62</span><br><span class=\"line\">63</span><br><span class=\"line\">64</span><br><span class=\"line\">65</span><br><span class=\"line\">66</span><br><span class=\"line\">67</span><br><span class=\"line\">68</span><br><span class=\"line\">69</span><br><span class=\"line\">70</span><br><span class=\"line\">71</span><br><span class=\"line\">72</span><br><span class=\"line\">73</span><br><span class=\"line\">74</span><br><span class=\"line\">75</span><br><span class=\"line\">76</span><br><span class=\"line\">77</span><br><span class=\"line\">78</span><br><span class=\"line\">79</span><br><span class=\"line\">80</span><br><span class=\"line\">81</span><br><span class=\"line\">82</span><br><span class=\"line\">83</span><br><span class=\"line\">84</span><br><span class=\"line\">85</span><br><span class=\"line\">86</span><br><span class=\"line\">87</span><br><span class=\"line\">88</span><br><span class=\"line\">89</span><br><span class=\"line\">90</span><br><span class=\"line\">91</span><br><span class=\"line\">92</span><br><span class=\"line\">93</span><br><span class=\"line\">94</span><br><span class=\"line\">95</span><br><span class=\"line\">96</span><br><span class=\"line\">97</span><br><span class=\"line\">98</span><br><span class=\"line\">99</span><br><span class=\"line\">100</span><br><span class=\"line\">101</span><br><span class=\"line\">102</span><br><span class=\"line\">103</span><br><span class=\"line\">104</span><br><span class=\"line\">105</span><br><span class=\"line\">106</span><br><span class=\"line\">107</span><br><span class=\"line\">108</span><br><span class=\"line\">109</span><br><span class=\"line\">110</span><br><span class=\"line\">111</span><br><span class=\"line\">112</span><br><span class=\"line\">113</span><br><span class=\"line\">114</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">~/GitHubLab/ActivityNet/Crawler/Kinetics$ conda <span class=\"built_in\">env</span> create -f environment.yml</span><br><span class=\"line\">Solving environment: <span class=\"keyword\">done</span></span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">==&gt; WARNING: A newer version of conda exists. &lt;==</span><br><span class=\"line\">  current version: 4.5.4</span><br><span class=\"line\">  latest version: 4.8.2</span><br><span class=\"line\"></span><br><span class=\"line\">Please update conda by running</span><br><span class=\"line\"></span><br><span class=\"line\">    $ conda update -n base conda</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">Downloading and Extracting Packages</span><br><span class=\"line\">ffmpeg-3.1.3         | 56.6 MB | <span class=\"comment\">###9                                                        |   7%</span></span><br><span class=\"line\"></span><br><span class=\"line\">CondaHTTPError: HTTP 000 CONNECTION FAILED <span class=\"keyword\">for</span> url &lt;https://conda.anaconda.org/menpo/linux-64/ffmpeg-3.1.3-0.tar.bz2&gt;</span><br><span class=\"line\">Elapsed: -</span><br><span class=\"line\"></span><br><span class=\"line\">An HTTP error occurred when trying to retrieve this URL.</span><br><span class=\"line\">HTTP errors are often intermittent, and a simple retry will get you on your way.</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">~/GitHubLab/ActivityNet/Crawler/Kinetics$ conda <span class=\"built_in\">env</span> create -f environment.yml</span><br><span class=\"line\">Solving environment: <span class=\"keyword\">done</span></span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">==&gt; WARNING: A newer version of conda exists. &lt;==</span><br><span class=\"line\">  current version: 4.5.4</span><br><span class=\"line\">  latest version: 4.8.2</span><br><span class=\"line\"></span><br><span class=\"line\">Please update conda by running</span><br><span class=\"line\"></span><br><span class=\"line\">    $ conda update -n base conda</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">Downloading and Extracting Packages</span><br><span class=\"line\">ffmpeg-3.1.3         | 56.6 MB | 1                                                           |   0% ^Z</span><br><span class=\"line\">[2]+  Stopped                 conda <span class=\"built_in\">env</span> create -f environment.yml</span><br><span class=\"line\">~/GitHubLab/ActivityNet/Crawler/Kinetics$</span><br><span class=\"line\">~/GitHubLab/ActivityNet/Crawler/Kinetics$ nano ~/.condarc</span><br><span class=\"line\">~/GitHubLab/ActivityNet/Crawler/Kinetics$ nano ~/.condarc</span><br><span class=\"line\">~/GitHubLab/ActivityNet/Crawler/Kinetics$ vim ~/.condarc</span><br><span class=\"line\">~/GitHubLab/ActivityNet/Crawler/Kinetics$</span><br><span class=\"line\">~/GitHubLab/ActivityNet/Crawler/Kinetics$ conda <span class=\"built_in\">env</span> create -f environment.yml</span><br><span class=\"line\">Solving environment: <span class=\"keyword\">done</span></span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">==&gt; WARNING: A newer version of conda exists. &lt;==</span><br><span class=\"line\">  current version: 4.5.4</span><br><span class=\"line\">  latest version: 4.8.2</span><br><span class=\"line\"></span><br><span class=\"line\">Please update conda by running</span><br><span class=\"line\"></span><br><span class=\"line\">    $ conda update -n base conda</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">Downloading and Extracting Packages</span><br><span class=\"line\">python-dateutil-2.6. |  232 KB | <span class=\"comment\">########################################################### | 100%</span></span><br><span class=\"line\">joblib-0.9.4         |  121 KB | <span class=\"comment\">########################################################### | 100%</span></span><br><span class=\"line\">readline-6.2         |  606 KB | <span class=\"comment\">########################################################### | 100%</span></span><br><span class=\"line\">blas-1.0             |    6 KB | <span class=\"comment\">########################################################### | 100%</span></span><br><span class=\"line\">wheel-0.29.0         |   81 KB | <span class=\"comment\">########################################################### | 100%</span></span><br><span class=\"line\">python-2.7.13        | 11.5 MB | <span class=\"comment\">########################################################### | 100%</span></span><br><span class=\"line\">tk-8.5.18            |  1.9 MB | <span class=\"comment\">########################################################### | 100%</span></span><br><span class=\"line\">pip-9.0.1            |  1.6 MB | <span class=\"comment\">########################################################### | 100%</span></span><br><span class=\"line\">six-1.10.0           |   16 KB | <span class=\"comment\">########################################################### | 100%</span></span><br><span class=\"line\">pandas-0.19.2        | 15.3 MB | <span class=\"comment\">########################################################### | 100%</span></span><br><span class=\"line\">numpy-1.12.1         |  6.6 MB | <span class=\"comment\">########################################################### | 100%</span></span><br><span class=\"line\">ffmpeg-3.1.3         | 56.6 MB | <span class=\"comment\">########################################################### | 100%</span></span><br><span class=\"line\">setuptools-27.2.0    |  521 KB | <span class=\"comment\">########################################################### | 100%</span></span><br><span class=\"line\">zlib-1.2.8           |  101 KB | <span class=\"comment\">########################################################### | 100%</span></span><br><span class=\"line\">mkl-2017.0.1         | 128.2 MB | <span class=\"comment\">########################################################## | 100%</span></span><br><span class=\"line\">openssl-1.0.2k       |  3.2 MB | <span class=\"comment\">########################################################### | 100%</span></span><br><span class=\"line\">sqlite-3.13.0        |  4.0 MB | <span class=\"comment\">########################################################### | 100%</span></span><br><span class=\"line\">pytz-2017.2          |  204 KB | <span class=\"comment\">########################################################### | 100%</span></span><br><span class=\"line\">Preparing transaction: <span class=\"keyword\">done</span></span><br><span class=\"line\">Verifying transaction: <span class=\"keyword\">done</span></span><br><span class=\"line\">Executing transaction: <span class=\"keyword\">done</span></span><br><span class=\"line\">Collecting decorator==4.0.11 (from -r /home/eustomaqua/GitHubLab/ActivityNet/Crawler/Kinetics/condaenv.1786bqps.requirements.txt (line 1))</span><br><span class=\"line\">  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/00/cc/dd79ea98a0ff5a01d714c37eddd99cd0a71557113f1511921d1ef9a083b8/decorator-4.0.11-py2.py3-none-any.whl</span><br><span class=\"line\">Collecting olefile==0.44 (from -r /home/eustomaqua/GitHubLab/ActivityNet/Crawler/Kinetics/condaenv.1786bqps.requirements.txt (line 2))</span><br><span class=\"line\">  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/35/17/c15d41d5a8f8b98cc3df25eb00c5cee76193114c78e5674df6ef4ac92647/olefile-0.44.zip (74kB)</span><br><span class=\"line\">    100% |████████████████████████████████| 81kB 1.1MB/s</span><br><span class=\"line\">Collecting youtube-dl==2017.6.5 (from -r /home/eustomaqua/GitHubLab/ActivityNet/Crawler/Kinetics/condaenv.1786bqps.requirements.txt (line 3))</span><br><span class=\"line\">  Cache entry deserialization failed, entry ignored</span><br><span class=\"line\">  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/7d/87/4aa3ab6c0e2c4c0c840153bb311b3e749a4a3fb2ff828d757a456d0293f5/youtube_dl-2017.6.5-py2.py3-none-any.whl (1.6MB)</span><br><span class=\"line\">    100% |████████████████████████████████| 1.6MB 1.0MB/s</span><br><span class=\"line\">Building wheels <span class=\"keyword\">for</span> collected packages: olefile</span><br><span class=\"line\">  Running setup.py bdist_wheel <span class=\"keyword\">for</span> olefile ... <span class=\"keyword\">done</span></span><br><span class=\"line\">  Stored <span class=\"keyword\">in</span> directory: /home/eustomaqua/.cache/pip/wheels/87/d1/0a/f210dcd910c1cbf0e20efaa6ab035aa20a5b80c989856a935e</span><br><span class=\"line\">Successfully built olefile</span><br><span class=\"line\">Installing collected packages: decorator, olefile, youtube-dl</span><br><span class=\"line\">Successfully installed decorator-4.0.11 olefile-0.44 youtube-dl-2017.6.5</span><br><span class=\"line\"><span class=\"comment\">#</span></span><br><span class=\"line\"><span class=\"comment\"># To activate this environment, use:</span></span><br><span class=\"line\"><span class=\"comment\"># &gt; source activate kinetics</span></span><br><span class=\"line\"><span class=\"comment\">#</span></span><br><span class=\"line\"><span class=\"comment\"># To deactivate an active environment, use:</span></span><br><span class=\"line\"><span class=\"comment\"># &gt; source deactivate</span></span><br><span class=\"line\"><span class=\"comment\">#</span></span><br><span class=\"line\"></span><br><span class=\"line\">~/GitHubLab/ActivityNet/Crawler/Kinetics$ conda <span class=\"built_in\">env</span> list</span><br><span class=\"line\"><span class=\"comment\"># conda environments:</span></span><br><span class=\"line\"><span class=\"comment\">#</span></span><br><span class=\"line\">base                  *  /home/eustomaqua/anaconda3</span><br><span class=\"line\">autovu                   /home/eustomaqua/anaconda3/envs/autovu</span><br><span class=\"line\">kinetics                 /home/eustomaqua/anaconda3/envs/kinetics</span><br><span class=\"line\"></span><br><span class=\"line\">~/GitHubLab/ActivityNet/Crawler/Kinetics$</span><br></pre></td></tr></table></figure>\n\n\n<h3 id=\"refs-1\"><a href=\"#refs-1\" class=\"headerlink\" title=\"* refs\"></a>* refs</h3><p><a href=\"https://blog.csdn.net/haeasringnar/article/details/82079943\">Ubuntu安装anaconda 介绍、安装、配置</a><br><a href=\"https://blog.csdn.net/ITBigGod/article/details/85690257\">ubuntu16.04安装和使用Anaconda3（详细）</a><br><a href=\"https://dl.ypw.io/python-environment/\">Python 环境</a><br><a href=\"https://dl.ypw.io/python-environment/\">Python 环境 | 切换 anaconda 源</a>  </p>\n<h2 id=\"CUDA-cuDNN-NVIDIA-Driver\"><a href=\"#CUDA-cuDNN-NVIDIA-Driver\" class=\"headerlink\" title=\"CUDA, cuDNN (NVIDIA Driver)\"></a>CUDA, cuDNN (NVIDIA Driver)</h2><h3 id=\"check-NVIDIA-driver\"><a href=\"#check-NVIDIA-driver\" class=\"headerlink\" title=\"check NVIDIA driver\"></a>check NVIDIA driver</h3><figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">~/Software$ nvidia-smi</span><br><span class=\"line\">Sat Feb  8 22:19:53 2020</span><br><span class=\"line\">+-----------------------------------------------------------------------------+</span><br><span class=\"line\">| NVIDIA-SMI 440.36       Driver Version: 440.36       CUDA Version: 10.2     |</span><br><span class=\"line\">|-------------------------------+----------------------+----------------------+</span><br><span class=\"line\"></span><br><span class=\"line\">+-----------------------------------------------------------------------------+</span><br><span class=\"line\">| Processes:                                                       GPU Memory |</span><br><span class=\"line\">|  GPU       PID   Type   Process name                             Usage      |</span><br><span class=\"line\">|=============================================================================|</span><br><span class=\"line\">~/Software$</span><br></pre></td></tr></table></figure>\n\n\n<h3 id=\"Download\"><a href=\"#Download\" class=\"headerlink\" title=\"Download\"></a>Download</h3><p><strong>Download CUDA Archive:</strong><br><a href=\"https://developer.nvidia.com/cuda-10.0-download-archive\">CUDA Toolkit 10.0 Archive</a>  </p>\n<p><em>Select Target Platform:</em><br>Click: Operating System, Architecture, Distribution, Version, Installer Type  </p>\n<ol>\n<li>Linux, x86_64, Ubuntu, 18.04, runfile (local)  </li>\n<li>Linux, x86_64, CentOS, 7, runfile (local)</li>\n</ol>\n<p><em>Download Installers for Linux ….:</em><br>Base Installer (Download)</p>\n<p><strong>Download cuDNN Archive:</strong><br><a href=\"https://developer.nvidia.com/cudnn\">cuDNN latest</a><br><a href=\"https://developer.nvidia.com/rdp/cudnn-archive\">cuDNN Archive</a>  </p>\n<p>Download cuDNN v7.6.4 [September 27, 2019], for CUDA 10.0  </p>\n<ul>\n<li>cuDNN Library for Linux</li>\n<li>&#x2F;&#x2F; or</li>\n<li>&#x2F;&#x2F; Download cuDNN v7.4.2 [Dec 14, 2018], for CUDA 10.0</li>\n</ul>\n<h3 id=\"CUDA\"><a href=\"#CUDA\" class=\"headerlink\" title=\"CUDA\"></a>CUDA</h3><p>install .run:  </p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br><span class=\"line\">39</span><br><span class=\"line\">40</span><br><span class=\"line\">41</span><br><span class=\"line\">42</span><br><span class=\"line\">43</span><br><span class=\"line\">44</span><br><span class=\"line\">45</span><br><span class=\"line\">46</span><br><span class=\"line\">47</span><br><span class=\"line\">48</span><br><span class=\"line\">49</span><br><span class=\"line\">50</span><br><span class=\"line\">51</span><br><span class=\"line\">52</span><br><span class=\"line\">53</span><br><span class=\"line\">54</span><br><span class=\"line\">55</span><br><span class=\"line\">56</span><br><span class=\"line\">57</span><br><span class=\"line\">58</span><br><span class=\"line\">59</span><br><span class=\"line\">60</span><br><span class=\"line\">61</span><br><span class=\"line\">62</span><br><span class=\"line\">63</span><br><span class=\"line\">64</span><br><span class=\"line\">65</span><br><span class=\"line\">66</span><br><span class=\"line\">67</span><br><span class=\"line\">68</span><br><span class=\"line\">69</span><br><span class=\"line\">70</span><br><span class=\"line\">71</span><br><span class=\"line\">72</span><br><span class=\"line\">73</span><br><span class=\"line\">74</span><br><span class=\"line\">75</span><br><span class=\"line\">76</span><br><span class=\"line\">77</span><br><span class=\"line\">78</span><br><span class=\"line\">79</span><br><span class=\"line\">80</span><br><span class=\"line\">81</span><br><span class=\"line\">82</span><br><span class=\"line\">83</span><br><span class=\"line\">84</span><br><span class=\"line\">85</span><br><span class=\"line\">86</span><br><span class=\"line\">87</span><br><span class=\"line\">88</span><br><span class=\"line\">89</span><br><span class=\"line\">90</span><br><span class=\"line\">91</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">~/Software$ <span class=\"built_in\">ls</span></span><br><span class=\"line\">cuda_10.0.130_410.48_linux.run  cudnn-10.0-linux-x64-v7.6.4.38.solitairetheme8</span><br><span class=\"line\">~/Software$ <span class=\"built_in\">chmod</span> +x cuda_10.0.130_410.48_linux.run</span><br><span class=\"line\">~/Software$ ./cuda_10.0.130_410.48_linux.run</span><br><span class=\"line\">Logging to /tmp/cuda_install_14812.<span class=\"built_in\">log</span></span><br><span class=\"line\">Using more to view the EULA.</span><br><span class=\"line\">End User License Agreement</span><br><span class=\"line\">--------------------------</span><br><span class=\"line\"></span><br><span class=\"line\">Preface</span><br><span class=\"line\">-------</span><br><span class=\"line\">The Software License Agreement <span class=\"keyword\">in</span> Chapter 1 and the Supplement</span><br><span class=\"line\"><span class=\"keyword\">in</span> Chapter 2 contain license terms and conditions that govern</span><br><span class=\"line\">the use of NVIDIA software. By accepting this agreement, you</span><br><span class=\"line\">agree to comply with all the terms and conditions applicable</span><br><span class=\"line\">to the product(s) included herein.</span><br><span class=\"line\"></span><br><span class=\"line\">NVIDIA Driver</span><br><span class=\"line\">Description</span><br><span class=\"line\">This package contains the operating system driver and</span><br><span class=\"line\">fundamental system software components <span class=\"keyword\">for</span> NVIDIA GPUs.</span><br><span class=\"line\"></span><br><span class=\"line\">NVIDIA CUDA Toolkit</span><br><span class=\"line\">Description</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">  20. Licensee<span class=\"string\">&#x27;s use of linmath.h header for CPU functions for</span></span><br><span class=\"line\"><span class=\"string\">    GL vector/matrix operations from lunarG is subject to the</span></span><br><span class=\"line\"><span class=\"string\">    Apache License Version 2.0.</span></span><br><span class=\"line\"><span class=\"string\"></span></span><br><span class=\"line\"><span class=\"string\">-----------------</span></span><br><span class=\"line\"><span class=\"string\">Do you accept the previously read EULA?</span></span><br><span class=\"line\"><span class=\"string\">accept/decline/quit:</span></span><br><span class=\"line\"><span class=\"string\"></span></span><br><span class=\"line\"><span class=\"string\">Do you accept the previously read EULA?</span></span><br><span class=\"line\"><span class=\"string\">accept/decline/quit:</span></span><br><span class=\"line\"><span class=\"string\">Do you accept the previously read EULA?</span></span><br><span class=\"line\"><span class=\"string\">accept/decline/quit: yes</span></span><br><span class=\"line\"><span class=\"string\">Do you accept the previously read EULA?</span></span><br><span class=\"line\"><span class=\"string\">accept/decline/quit: accept</span></span><br><span class=\"line\"><span class=\"string\"></span></span><br><span class=\"line\"><span class=\"string\">Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 410.48?</span></span><br><span class=\"line\"><span class=\"string\">(y)es/(n)o/(q)uit: no</span></span><br><span class=\"line\"><span class=\"string\"></span></span><br><span class=\"line\"><span class=\"string\">Install the CUDA 10.0 Toolkit?</span></span><br><span class=\"line\"><span class=\"string\">(y)es/(n)o/(q)uit: yes</span></span><br><span class=\"line\"><span class=\"string\"></span></span><br><span class=\"line\"><span class=\"string\">Enter Toolkit Location</span></span><br><span class=\"line\"><span class=\"string\"> [ default is /usr/local/cuda-10.0 ]: /home/eustomaqua/Software/cuda-10.0</span></span><br><span class=\"line\"><span class=\"string\"></span></span><br><span class=\"line\"><span class=\"string\">Do you want to install a symbolic link at /usr/local/cuda?</span></span><br><span class=\"line\"><span class=\"string\">(y)es/(n)o/(q)uit: no</span></span><br><span class=\"line\"><span class=\"string\"></span></span><br><span class=\"line\"><span class=\"string\">Install the CUDA 10.0 Samples?</span></span><br><span class=\"line\"><span class=\"string\">(y)es/(n)o/(q)uit: yes</span></span><br><span class=\"line\"><span class=\"string\"></span></span><br><span class=\"line\"><span class=\"string\">Enter CUDA Samples Location</span></span><br><span class=\"line\"><span class=\"string\"> [ default is /home/eustomaqua ]: /home/eustomaqua/Software/cuda-samples</span></span><br><span class=\"line\"><span class=\"string\"></span></span><br><span class=\"line\"><span class=\"string\">Installing the CUDA Toolkit in /home/eustomaqua/Software/cuda-10.0 ...</span></span><br><span class=\"line\"><span class=\"string\">Missing recommended library: libGLU.so</span></span><br><span class=\"line\"><span class=\"string\">Missing recommended library: libXi.so</span></span><br><span class=\"line\"><span class=\"string\">Missing recommended library: libXmu.so</span></span><br><span class=\"line\"><span class=\"string\"></span></span><br><span class=\"line\"><span class=\"string\">Installing the CUDA Samples in /home/eustomaqua/Software/cuda-samples ...</span></span><br><span class=\"line\"><span class=\"string\">Copying samples to /home/eustomaqua/Software/cuda-samples/NVIDIA_CUDA-10.0_Samples now...</span></span><br><span class=\"line\"><span class=\"string\">Finished copying samples.</span></span><br><span class=\"line\"><span class=\"string\"></span></span><br><span class=\"line\"><span class=\"string\">===========</span></span><br><span class=\"line\"><span class=\"string\">= Summary =</span></span><br><span class=\"line\"><span class=\"string\">===========</span></span><br><span class=\"line\"><span class=\"string\"></span></span><br><span class=\"line\"><span class=\"string\">Driver:   Not Selected</span></span><br><span class=\"line\"><span class=\"string\">Toolkit:  Installed in /home/eustomaqua/Software/cuda-10.0</span></span><br><span class=\"line\"><span class=\"string\">Samples:  Installed in /home/eustomaqua/Software/cuda-samples, but missing recommended libraries</span></span><br><span class=\"line\"><span class=\"string\"></span></span><br><span class=\"line\"><span class=\"string\">Please make sure that</span></span><br><span class=\"line\"><span class=\"string\"> -   PATH includes /home/eustomaqua/Software/cuda-10.0/bin</span></span><br><span class=\"line\"><span class=\"string\"> -   LD_LIBRARY_PATH includes /home/eustomaqua/Software/cuda-10.0/lib64, or, add /home/eustomaqua/Software/cuda-10.0/lib64 to /etc/ld.so.conf and run ldconfig as root</span></span><br><span class=\"line\"><span class=\"string\"></span></span><br><span class=\"line\"><span class=\"string\">To uninstall the CUDA Toolkit, run the uninstall script in /home/eustomaqua/Software/cuda-10.0/bin</span></span><br><span class=\"line\"><span class=\"string\"></span></span><br><span class=\"line\"><span class=\"string\">Please see CUDA_Installation_Guide_Linux.pdf in /home/eustomaqua/Software/cuda-10.0/doc/pdf for detailed information on setting up CUDA.</span></span><br><span class=\"line\"><span class=\"string\"></span></span><br><span class=\"line\"><span class=\"string\">***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 384.00 is required for CUDA 10.0 functionality to work.</span></span><br><span class=\"line\"><span class=\"string\">To install the driver using this installer, run the following command, replacing &lt;CudaInstaller&gt; with the name of this run file:</span></span><br><span class=\"line\"><span class=\"string\">    sudo &lt;CudaInstaller&gt;.run -silent -driver</span></span><br><span class=\"line\"><span class=\"string\"></span></span><br><span class=\"line\"><span class=\"string\">Logfile is /tmp/cuda_install_14812.log</span></span><br><span class=\"line\"><span class=\"string\">~/Software$</span></span><br></pre></td></tr></table></figure>\n\n<p>config .bashrc:  </p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">~/Software$ vim ~/.bashrc</span><br><span class=\"line\">~/Software$ <span class=\"built_in\">source</span> ~/.bashrc</span><br><span class=\"line\">~/Software$ nvidia-smi</span><br><span class=\"line\">Sat Feb  8 22:55:29 2020</span><br><span class=\"line\">+-----------------------------------------------------------------------------+</span><br><span class=\"line\">| NVIDIA-SMI 440.36       Driver Version: 440.36       CUDA Version: 10.2     |</span><br><span class=\"line\">|-------------------------------+----------------------+----------------------+</span><br></pre></td></tr></table></figure>\n\n<p>end of .bashrc file:  </p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"comment\"># added by Anaconda3 installer</span></span><br><span class=\"line\"><span class=\"built_in\">export</span> PATH=<span class=\"string\">&quot;/home/eustomaqua/anaconda3/bin:<span class=\"variable\">$PATH</span>&quot;</span></span><br><span class=\"line\"><span class=\"comment\"># self added for Nvidia</span></span><br><span class=\"line\"><span class=\"built_in\">export</span> PATH=<span class=\"variable\">$HOME</span>/Software/cuda-10.0/bin:<span class=\"variable\">$PATH</span></span><br><span class=\"line\"><span class=\"built_in\">export</span> LD_LIBRARY_PATH=<span class=\"variable\">$LD_LIBRARY_PATH</span>:<span class=\"variable\">$HOME</span>/Software/cuda-10.0/lib64/</span><br></pre></td></tr></table></figure>\n\n\n<h3 id=\"cuDNN\"><a href=\"#cuDNN\" class=\"headerlink\" title=\"cuDNN\"></a>cuDNN</h3><figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br><span class=\"line\">39</span><br><span class=\"line\">40</span><br><span class=\"line\">41</span><br><span class=\"line\">42</span><br><span class=\"line\">43</span><br><span class=\"line\">44</span><br><span class=\"line\">45</span><br><span class=\"line\">46</span><br><span class=\"line\">47</span><br><span class=\"line\">48</span><br><span class=\"line\">49</span><br><span class=\"line\">50</span><br><span class=\"line\">51</span><br><span class=\"line\">52</span><br><span class=\"line\">53</span><br><span class=\"line\">54</span><br><span class=\"line\">55</span><br><span class=\"line\">56</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">~/Software$ <span class=\"built_in\">ls</span></span><br><span class=\"line\">cuda-10.0                       cudnn-10.0-linux-x64-v7.4.2.24.solitairetheme8</span><br><span class=\"line\">cuda_10.0.130_410.48_linux.run  cudnn-10.0-linux-x64-v7.6.4.38.solitairetheme8</span><br><span class=\"line\">cuda-samples</span><br><span class=\"line\">~/Software$ <span class=\"built_in\">cp</span> cudnn-10.0-linux-x64-v7.6.4.38.solitairetheme8 cudnn-10.0-linux-x64-v7.6.4.38.tgz</span><br><span class=\"line\">~/Software$ tar -xvf cudnn-10.0-linux-x64-v7.6.4.38.tgz</span><br><span class=\"line\">cuda/include/cudnn.h</span><br><span class=\"line\">cuda/NVIDIA_SLA_cuDNN_Support.txt</span><br><span class=\"line\">cuda/lib64/libcudnn.so</span><br><span class=\"line\">cuda/lib64/libcudnn.so.7</span><br><span class=\"line\">cuda/lib64/libcudnn.so.7.6.4</span><br><span class=\"line\">cuda/lib64/libcudnn_static.a</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">~/Software$ <span class=\"built_in\">ls</span></span><br><span class=\"line\">cuda                            cudnn-10.0-linux-x64-v7.4.2.24.solitairetheme8</span><br><span class=\"line\">cuda-10.0                       cudnn-10.0-linux-x64-v7.6.4.38.solitairetheme8</span><br><span class=\"line\">cuda_10.0.130_410.48_linux.run  cudnn-10.0-linux-x64-v7.6.4.38.tgz</span><br><span class=\"line\">cuda-samples</span><br><span class=\"line\">~/Software$</span><br><span class=\"line\">~/Software$ <span class=\"built_in\">ls</span> cuda</span><br><span class=\"line\">include  lib64  NVIDIA_SLA_cuDNN_Support.txt</span><br><span class=\"line\">~/Software$ <span class=\"built_in\">ls</span> cuda/include</span><br><span class=\"line\">cudnn.h</span><br><span class=\"line\">~/Software$ <span class=\"built_in\">ls</span> cuda/lib64</span><br><span class=\"line\">libcudnn.so  libcudnn.so.7  libcudnn.so.7.6.4  libcudnn_static.a</span><br><span class=\"line\">~/Software$</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">~/Software$ <span class=\"built_in\">mv</span> cuda/include/cudnn.h ~/Software/cuda-10.0/include/</span><br><span class=\"line\">~/Software$ <span class=\"built_in\">mv</span> cuda/lib64/libcudnn* ~/Software/cuda-10.0/lib64</span><br><span class=\"line\">~/Software$ <span class=\"built_in\">chmod</span> a+r ~/Software/cuda-10.0/include/cudnn.h ~/Software/cuda-10.0/lib64/libcudnn*</span><br><span class=\"line\">~/Software$</span><br><span class=\"line\"></span><br><span class=\"line\">~/Software$ <span class=\"built_in\">cat</span> ~/Software/cuda-10.0/version.txt</span><br><span class=\"line\">CUDA Version 10.0.130</span><br><span class=\"line\">~/Software$ <span class=\"built_in\">cat</span> ~/Software/cuda-10.0/include/cudnn.h | grep CUDNN_MAJOR -A5</span><br><span class=\"line\"><span class=\"comment\">#define CUDNN_MAJOR 7</span></span><br><span class=\"line\"><span class=\"comment\">#define CUDNN_MINOR 6</span></span><br><span class=\"line\"><span class=\"comment\">#define CUDNN_PATCHLEVEL 4</span></span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\">#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)</span></span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\">#include &quot;driver_types.h&quot;</span></span><br><span class=\"line\"><span class=\"comment\">#include &lt;cuda_runtime.h&gt;</span></span><br><span class=\"line\"><span class=\"comment\">#include &lt;stdint.h&gt;</span></span><br><span class=\"line\"></span><br><span class=\"line\">~/Software$</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">~/Software$ <span class=\"built_in\">mv</span> cuda/NVIDIA_SLA_cuDNN_Support.txt cuda-10.0/</span><br><span class=\"line\">~/Software$ <span class=\"built_in\">rm</span> -r cuda</span><br><span class=\"line\">~/Software$</span><br></pre></td></tr></table></figure>\n\n\n<h3 id=\"refs-2\"><a href=\"#refs-2\" class=\"headerlink\" title=\"* refs\"></a>* refs</h3><p><a href=\"https://linuxconfig.org/how-to-check-nvidia-driver-version-on-your-linux-system\">How to check NVIDIA driver version on your Linux system</a><br><a href=\"https://www.linuxbabe.com/ubuntu/install-nvidia-driver-ubuntu-18-04\">2 Ways to Install Nvidia Driver on Ubuntu 18.04 (GUI &amp; Command Line)</a>  </p>\n<h2 id=\"Install-Python-Packages\"><a href=\"#Install-Python-Packages\" class=\"headerlink\" title=\"Install Python Packages\"></a>Install Python Packages</h2><h3 id=\"Expected-packages\"><a href=\"#Expected-packages\" class=\"headerlink\" title=\"Expected packages\"></a>Expected packages</h3><p>with Anaconda:  </p>\n<figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">jupyter == <span class=\"number\">1.0</span><span class=\"number\">.0</span></span><br><span class=\"line\">numpy == <span class=\"number\">1.14</span><span class=\"number\">.3</span></span><br><span class=\"line\">pandas == <span class=\"number\">0.23</span><span class=\"number\">.0</span></span><br><span class=\"line\">scikit-learn == <span class=\"number\">0.19</span><span class=\"number\">.1</span></span><br><span class=\"line\">matplotlib == <span class=\"number\">2.2</span><span class=\"number\">.2</span></span><br><span class=\"line\">Pillow == <span class=\"number\">5.1</span><span class=\"number\">.0</span></span><br><span class=\"line\">seaborn == <span class=\"number\">0.8</span><span class=\"number\">.1</span></span><br></pre></td></tr></table></figure>\n<p>custom:  </p>\n<figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">opencv-python</span><br><span class=\"line\">tqdm</span><br><span class=\"line\">torch</span><br><span class=\"line\">torchvision</span><br><span class=\"line\">tensorflow-gpu</span><br><span class=\"line\"><span class=\"comment\"># keras</span></span><br><span class=\"line\">tensorboardX</span><br></pre></td></tr></table></figure>\n\n<h3 id=\"Before-custom-installation\"><a href=\"#Before-custom-installation\" class=\"headerlink\" title=\"Before custom installation\"></a>Before custom installation</h3><figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">~/Software$ <span class=\"built_in\">cd</span> ..</span><br><span class=\"line\">~$</span><br><span class=\"line\">~$ python</span><br><span class=\"line\">Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56)</span><br><span class=\"line\">[GCC 7.2.0] on linux</span><br><span class=\"line\">Type <span class=\"string\">&quot;help&quot;</span>, <span class=\"string\">&quot;copyright&quot;</span>, <span class=\"string\">&quot;credits&quot;</span> or <span class=\"string\">&quot;license&quot;</span> <span class=\"keyword\">for</span> more information.</span><br><span class=\"line\">&gt;&gt;&gt; import jupyter</span><br><span class=\"line\">&gt;&gt;&gt; import numpy as np</span><br><span class=\"line\">&gt;&gt;&gt; import pandas as pd</span><br><span class=\"line\">&gt;&gt;&gt; import sklearn</span><br><span class=\"line\">&gt;&gt;&gt; import matplotlib</span><br><span class=\"line\">&gt;&gt;&gt; from PIL import Image</span><br><span class=\"line\">&gt;&gt;&gt; import seaborn</span><br><span class=\"line\">/home/eustomaqua/anaconda3/lib/python3.6/site-packages/matplotlib/font_manager.py:278: UserWarning: Matplotlib is building the font cache using fc-list. This may take a moment.</span><br><span class=\"line\">  <span class=\"string\">&#x27;Matplotlib is building the font cache using fc-list. &#x27;</span></span><br><span class=\"line\">&gt;&gt;&gt;</span><br><span class=\"line\">&gt;&gt;&gt; np.__version__</span><br><span class=\"line\"><span class=\"string\">&#x27;1.14.3&#x27;</span></span><br><span class=\"line\">&gt;&gt;&gt; pd.__version__</span><br><span class=\"line\"><span class=\"string\">&#x27;0.23.0&#x27;</span></span><br><span class=\"line\">&gt;&gt;&gt; seaborn.__version__</span><br><span class=\"line\"><span class=\"string\">&#x27;0.8.1&#x27;</span></span><br><span class=\"line\">&gt;&gt;&gt;</span><br><span class=\"line\">[4]+  Stopped                 python</span><br><span class=\"line\">~$</span><br><span class=\"line\">~$ python</span><br><span class=\"line\">Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56)</span><br><span class=\"line\">[GCC 7.2.0] on linux</span><br><span class=\"line\">Type <span class=\"string\">&quot;help&quot;</span>, <span class=\"string\">&quot;copyright&quot;</span>, <span class=\"string\">&quot;credits&quot;</span> or <span class=\"string\">&quot;license&quot;</span> <span class=\"keyword\">for</span> more information.</span><br><span class=\"line\">&gt;&gt;&gt; import seaborn</span><br><span class=\"line\">&gt;&gt;&gt;</span><br><span class=\"line\">[5]+  Stopped                 python</span><br><span class=\"line\">~$</span><br></pre></td></tr></table></figure>\n\n<h3 id=\"pip-install\"><a href=\"#pip-install\" class=\"headerlink\" title=\"pip install\"></a>pip install</h3><figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">$</span><br></pre></td></tr></table></figure>\n\n<h4 id=\"custom\"><a href=\"#custom\" class=\"headerlink\" title=\"custom\"></a>custom</h4><figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">~$ pip config global.index-url  <span class=\"comment\"># same as: pip config</span></span><br><span class=\"line\">Need an action (edit, get, list, <span class=\"built_in\">set</span>, <span class=\"built_in\">unset</span>) to perform.</span><br><span class=\"line\">You are using pip version 10.0.1, however version 20.0.2 is available.</span><br><span class=\"line\">You should consider upgrading via the <span class=\"string\">&#x27;pip install --upgrade pip&#x27;</span> <span class=\"built_in\">command</span>.</span><br><span class=\"line\">~$ pip config list global.index-url</span><br><span class=\"line\">Got unexpected number of arguments, expected 0. (example: <span class=\"string\">&quot;pip config list&quot;</span>)</span><br><span class=\"line\">You are using pip version 10.0.1, however version 20.0.2 is available.</span><br><span class=\"line\">You should consider upgrading via the <span class=\"string\">&#x27;pip install --upgrade pip&#x27;</span> <span class=\"built_in\">command</span>.</span><br><span class=\"line\">~$</span><br><span class=\"line\">~$ pip config <span class=\"built_in\">set</span> global.index-url https://pypi.tuna.tsinghua.edu.cn/simple</span><br><span class=\"line\">Writing to /home/eustomaqua/.config/pip/pip.conf</span><br><span class=\"line\">You are using pip version 10.0.1, however version 20.0.2 is available.</span><br><span class=\"line\">You should consider upgrading via the <span class=\"string\">&#x27;pip install --upgrade pip&#x27;</span> <span class=\"built_in\">command</span>.</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">~$ pip install opencv-python</span><br><span class=\"line\">Requirement already satisfied: numpy&gt;=1.11.3 <span class=\"keyword\">in</span> ./anaconda3/lib/python3.6/site-packages (from opencv-python) (1.14.3)</span><br><span class=\"line\">distributed 1.21.8 requires msgpack, <span class=\"built_in\">which</span> is not installed.</span><br><span class=\"line\">Installing collected packages: opencv-python</span><br><span class=\"line\">Successfully installed opencv-python-4.2.0.32</span><br><span class=\"line\"></span><br><span class=\"line\">~$ pip install tqdm</span><br><span class=\"line\">Looking <span class=\"keyword\">in</span> indexes: https://pypi.tuna.tsinghua.edu.cn/simple</span><br><span class=\"line\">Successfully installed tqdm-4.42.1</span><br></pre></td></tr></table></figure>\n\n\n<h4 id=\"pytorch\"><a href=\"#pytorch\" class=\"headerlink\" title=\"pytorch\"></a>pytorch</h4><figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br><span class=\"line\">39</span><br><span class=\"line\">40</span><br><span class=\"line\">41</span><br><span class=\"line\">42</span><br><span class=\"line\">43</span><br><span class=\"line\">44</span><br><span class=\"line\">45</span><br><span class=\"line\">46</span><br><span class=\"line\">47</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">~$ <span class=\"comment\"># pip install torch torchvision</span></span><br><span class=\"line\">~$ <span class=\"comment\"># pip install tensorboardX</span></span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">~$ pip install torch==1.2.0 torchvision==0.4.0</span><br><span class=\"line\">Looking <span class=\"keyword\">in</span> indexes: https://pypi.tuna.tsinghua.edu.cn/simple</span><br><span class=\"line\">Collecting torch==1.2.0</span><br><span class=\"line\">  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/30/57/d5cceb0799c06733eefce80c395459f28970ebb9e896846ce96ab579a3f1/torch-1.2.0-cp36-cp36m-manylinux1_x86_64.whl (748.8MB)</span><br><span class=\"line\">    100% |████████████████████████████████| 748.9MB 146kB/s</span><br><span class=\"line\">Collecting torchvision==0.4.0</span><br><span class=\"line\">  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/06/e6/a564eba563f7ff53aa7318ff6aaa5bd8385cbda39ed55ba471e95af27d19/torchvision-0.4.0-cp36-cp36m-manylinux1_x86_64.whl (8.8MB)</span><br><span class=\"line\">    100% |████████████████████████████████| 8.8MB 3.4MB/s</span><br><span class=\"line\">Requirement already satisfied: numpy <span class=\"keyword\">in</span> ./anaconda3/lib/python3.6/site-packages (from torch==1.2.0) (1.16.2)</span><br><span class=\"line\">Requirement already satisfied: pillow&gt;=4.1.1 <span class=\"keyword\">in</span> ./anaconda3/lib/python3.6/site-packages (from torchvision==0.4.0) (5.1.0)</span><br><span class=\"line\">Requirement already satisfied: six <span class=\"keyword\">in</span> ./anaconda3/lib/python3.6/site-packages (from torchvision==0.4.0) (1.11.0)</span><br><span class=\"line\">Installing collected packages: torch, torchvision</span><br><span class=\"line\">Successfully installed torch-1.2.0 torchvision-0.4.0</span><br><span class=\"line\">You are using pip version 10.0.1, however version 20.0.2 is available.</span><br><span class=\"line\">You should consider upgrading via the <span class=\"string\">&#x27;pip install --upgrade pip&#x27;</span> <span class=\"built_in\">command</span>.</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">~$ pip install tensorboardX</span><br><span class=\"line\">Looking <span class=\"keyword\">in</span> indexes: https://pypi.tuna.tsinghua.edu.cn/simple</span><br><span class=\"line\">Collecting tensorboardX</span><br><span class=\"line\">  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/35/f1/5843425495765c8c2dd0784a851a93ef204d314fc87bcc2bbb9f662a3ad1/tensorboardX-2.0-py2.py3-none-any.whl (195kB)</span><br><span class=\"line\">    100% |████████████████████████████████| 204kB 2.4MB/s</span><br><span class=\"line\">Requirement already satisfied: six <span class=\"keyword\">in</span> ./anaconda3/lib/python3.6/site-packages (from tensorboardX) (1.11.0)</span><br><span class=\"line\">Requirement already satisfied: protobuf&gt;=3.8.0 <span class=\"keyword\">in</span> ./anaconda3/lib/python3.6/site-packages (from tensorboardX) (3.11.3)</span><br><span class=\"line\">Requirement already satisfied: numpy <span class=\"keyword\">in</span> ./anaconda3/lib/python3.6/site-packages (from tensorboardX) (1.16.2)</span><br><span class=\"line\">Requirement already satisfied: setuptools <span class=\"keyword\">in</span> ./anaconda3/lib/python3.6/site-packages (from protobuf&gt;=3.8.0-&gt;tensorboardX) (45.1.0)</span><br><span class=\"line\">Installing collected packages: tensorboardX</span><br><span class=\"line\">Successfully installed tensorboardX-2.0</span><br><span class=\"line\">You are using pip version 10.0.1, however version 20.0.2 is available.</span><br><span class=\"line\">You should consider upgrading via the <span class=\"string\">&#x27;pip install --upgrade pip&#x27;</span> <span class=\"built_in\">command</span>.</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">~$ python</span><br><span class=\"line\">Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56)</span><br><span class=\"line\">[GCC 7.2.0] on linux</span><br><span class=\"line\">Type <span class=\"string\">&quot;help&quot;</span>, <span class=\"string\">&quot;copyright&quot;</span>, <span class=\"string\">&quot;credits&quot;</span> or <span class=\"string\">&quot;license&quot;</span> <span class=\"keyword\">for</span> more information.</span><br><span class=\"line\">&gt;&gt;&gt; import torch</span><br><span class=\"line\">&gt;&gt;&gt; import torchvision</span><br><span class=\"line\">&gt;&gt;&gt; torch.cuda.is_available()</span><br><span class=\"line\">True</span><br><span class=\"line\">&gt;&gt;&gt; from tensorboardX import SummaryWriter</span><br><span class=\"line\">&gt;&gt;&gt;</span><br><span class=\"line\">[12]+  Stopped                 python</span><br></pre></td></tr></table></figure>\n\n\n\n<h4 id=\"tensorflow-gpu\"><a href=\"#tensorflow-gpu\" class=\"headerlink\" title=\"tensorflow-gpu\"></a>tensorflow-gpu</h4><p>tensorflow-gpu 2.0.0-beta0  </p>\n<p>(1) failed due to “install msgpack, wrapt”</p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br><span class=\"line\">39</span><br><span class=\"line\">40</span><br><span class=\"line\">41</span><br><span class=\"line\">42</span><br><span class=\"line\">43</span><br><span class=\"line\">44</span><br><span class=\"line\">45</span><br><span class=\"line\">46</span><br><span class=\"line\">47</span><br><span class=\"line\">48</span><br><span class=\"line\">49</span><br><span class=\"line\">50</span><br><span class=\"line\">51</span><br><span class=\"line\">52</span><br><span class=\"line\">53</span><br><span class=\"line\">54</span><br><span class=\"line\">55</span><br><span class=\"line\">56</span><br><span class=\"line\">57</span><br><span class=\"line\">58</span><br><span class=\"line\">59</span><br><span class=\"line\">60</span><br><span class=\"line\">61</span><br><span class=\"line\">62</span><br><span class=\"line\">63</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">~$ <span class=\"comment\"># pip install tensorflow-gpu  # keras</span></span><br><span class=\"line\">~$ pip install tensorflow-gpu==2.0.*</span><br><span class=\"line\">Looking <span class=\"keyword\">in</span> indexes: https://pypi.tuna.tsinghua.edu.cn/simple</span><br><span class=\"line\">Collecting tensorflow-gpu==2.0.*</span><br><span class=\"line\">  Could not find a version that satisfies the requirement tensorflow-gpu==2.0.* (from versions: 0.12.1, 1.0.0, 1.0.1, 1.1.0rc1, 1.1.0rc2, 1.1.0, 1.2.0rc0, 1.2.0rc1, 1.2.0rc2, 1.2.0, 1.2.1, 1.3.0rc0, 1.3.0rc1, 1.3.0rc2, 1.3.0, 1.4.0rc0, 1.4.0rc1, 1.4.0, 1.4.1, 1.5.0rc0, 1.5.0rc1, 1.5.0, 1.5.1, 1.6.0rc0, 1.6.0rc1, 1.6.0, 1.7.0rc0, 1.7.0rc1, 1.7.0, 1.7.1, 1.8.0rc0, 1.8.0rc1, 1.8.0, 1.9.0rc0, 1.9.0rc1, 1.9.0rc2, 1.9.0, 1.10.0rc0, 1.10.0rc1, 1.10.0, 1.10.1, 1.11.0rc0, 1.11.0rc1, 1.11.0rc2, 1.11.0, 1.12.0rc0, 1.12.0rc1, 1.12.0rc2, 1.12.0, 1.12.2, 1.12.3, 1.13.0rc0, 1.13.0rc1, 1.13.0rc2, 1.13.1, 1.13.2, 1.14.0rc0, 1.14.0rc1, 1.14.0, 2.0.0a0, 2.0.0b0, 2.0.0b1)</span><br><span class=\"line\">No matching distribution found <span class=\"keyword\">for</span> tensorflow-gpu==2.0.*</span><br><span class=\"line\">You are using pip version 10.0.1, however version 20.0.2 is available.</span><br><span class=\"line\">You should consider upgrading via the <span class=\"string\">&#x27;pip install --upgrade pip&#x27;</span> <span class=\"built_in\">command</span>.</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">~$ pip install tensorflow-gpu==2.0.0b0</span><br><span class=\"line\">Looking <span class=\"keyword\">in</span> indexes: https://pypi.tuna.tsinghua.edu.cn/simple</span><br><span class=\"line\">Collecting tensorflow-gpu==2.0.0b0</span><br><span class=\"line\">  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/e8/7e/87c4c94686cda7066f52cbca4c344248516490acdd6b258ec6b8a805d956/tensorflow_gpu-2.0.0b0-cp36-cp36m-manylinux1_x86_64.whl (348.8MB)</span><br><span class=\"line\">Collecting protobuf&gt;=3.6.1 (from tensorflow-gpu==2.0.0b0)</span><br><span class=\"line\">  Downloading protobuf-3.11.3-cp36-cp36m-manylinux1_x86_64.whl (1.3MB)</span><br><span class=\"line\">Collecting absl-py&gt;=0.7.0 (from tensorflow-gpu==2.0.0b0)</span><br><span class=\"line\">  Downloading absl-py-0.9.0.tar.gz (104kB)</span><br><span class=\"line\">Collecting google-pasta&gt;=0.1.6 (from tensorflow-gpu==2.0.0b0)</span><br><span class=\"line\">  Downloading google_pasta-0.1.8-py3-none-any.whl (57kB)</span><br><span class=\"line\">Collecting termcolor&gt;=1.1.0 (from tensorflow-gpu==2.0.0b0)</span><br><span class=\"line\">  Downloading termcolor-1.1.0.tar.gz</span><br><span class=\"line\">Collecting keras-preprocessing&gt;=1.0.5 (from tensorflow-gpu==2.0.0b0)</span><br><span class=\"line\">  Downloading Keras_Preprocessing-1.1.0-py2.py3-none-any.whl (41kB)</span><br><span class=\"line\">Collecting gast&gt;=0.2.0 (from tensorflow-gpu==2.0.0b0)</span><br><span class=\"line\">  Downloading gast-0.3.3-py2.py3-none-any.whl</span><br><span class=\"line\">Collecting astor&gt;=0.6.0 (from tensorflow-gpu==2.0.0b0)</span><br><span class=\"line\">  Downloading astor-0.8.1-py2.py3-none-any.whl</span><br><span class=\"line\">Collecting wrapt&gt;=1.11.1 (from tensorflow-gpu==2.0.0b0)</span><br><span class=\"line\">  Downloading wrapt-1.11.2.tar.gz</span><br><span class=\"line\">Collecting keras-applications&gt;=1.0.6 (from tensorflow-gpu==2.0.0b0)</span><br><span class=\"line\">  Downloading Keras_Applications-1.0.8-py3-none-any.whl (50kB)</span><br><span class=\"line\">Collecting grpcio&gt;=1.8.6 (from tensorflow-gpu==2.0.0b0)</span><br><span class=\"line\">  Downloading grpcio-1.27.1-cp36-cp36m-manylinux1_x86_64.whl (2.7MB)</span><br><span class=\"line\">Collecting tf-estimator-nightly&lt;1.14.0.dev2019060502,&gt;=1.14.0.dev2019060501 (from tensorflow-gpu==2.0.0b0)</span><br><span class=\"line\">  Downloading tf_estimator_nightly-1.14.0.dev2019060501-py2.py3-none-any.whl (496kB)</span><br><span class=\"line\">Requirement already satisfied: wheel&gt;=0.26 <span class=\"keyword\">in</span> ./anaconda3/lib/python3.6/site-packages (from tensorflow-gpu==2.0.0b0) (0.31.1)</span><br><span class=\"line\">Collecting tb-nightly&lt;1.14.0a20190604,&gt;=1.14.0a20190603 (from tensorflow-gpu==2.0.0b0)</span><br><span class=\"line\">  Downloading tb_nightly-1.14.0a20190603-py3-none-any.whl (3.1MB)</span><br><span class=\"line\">Collecting numpy&lt;2.0,&gt;=1.14.5 (from tensorflow-gpu==2.0.0b0)</span><br><span class=\"line\">  Downloading numpy-1.18.1-cp36-cp36m-manylinux1_x86_64.whl (20.1MB)</span><br><span class=\"line\">Requirement already satisfied: six&gt;=1.10.0 <span class=\"keyword\">in</span> ./anaconda3/lib/python3.6/site-packages (from tensorflow-gpu==2.0.0b0) (1.11.0)</span><br><span class=\"line\">Requirement already satisfied: setuptools <span class=\"keyword\">in</span> ./anaconda3/lib/python3.6/site-packages (from protobuf&gt;=3.6.1-&gt;tensorflow-gpu==2.0.0b0) (39.1.0)</span><br><span class=\"line\">Requirement already satisfied: h5py <span class=\"keyword\">in</span> ./anaconda3/lib/python3.6/site-packages (from keras-applications&gt;=1.0.6-&gt;tensorflow-gpu==2.0.0b0) (2.7.1)</span><br><span class=\"line\">Collecting markdown&gt;=2.6.8 (from tb-nightly&lt;1.14.0a20190604,&gt;=1.14.0a20190603-&gt;tensorflow-gpu==2.0.0b0)</span><br><span class=\"line\">  Downloading Markdown-3.2-py2.py3-none-any.whl (88kB)</span><br><span class=\"line\">Requirement already satisfied: werkzeug&gt;=0.11.15 <span class=\"keyword\">in</span> ./anaconda3/lib/python3.6/site-packages (from tb-nightly&lt;1.14.0a20190604,&gt;=1.14.0a20190603-&gt;tensorflow-gpu==2.0.0b0) (0.14.1)</span><br><span class=\"line\">Building wheels <span class=\"keyword\">for</span> collected packages: absl-py, termcolor, wrapt</span><br><span class=\"line\">  Running setup.py bdist_wheel <span class=\"keyword\">for</span> absl-py ... <span class=\"keyword\">done</span></span><br><span class=\"line\">  Stored <span class=\"keyword\">in</span> directory: /home/eustomaqua/.cache/pip/wheels/55/fd/b5/4db4cce08516c3aaa68ee4c843439f45c7fcf177320ba63d9f</span><br><span class=\"line\">  Running setup.py bdist_wheel <span class=\"keyword\">for</span> termcolor ... <span class=\"keyword\">done</span></span><br><span class=\"line\">  Stored <span class=\"keyword\">in</span> directory: /home/eustomaqua/.cache/pip/wheels/e3/d8/fc/50ab6e66e3dead21d5afff006dc5298913a3064be2b1105359</span><br><span class=\"line\">  Running setup.py bdist_wheel <span class=\"keyword\">for</span> wrapt ... <span class=\"keyword\">done</span></span><br><span class=\"line\">  Stored <span class=\"keyword\">in</span> directory: /home/eustomaqua/.cache/pip/wheels/48/31/f6/4ebf38e9000388204ef6f1931a0cd48f9d75a12a9c6a328cfd</span><br><span class=\"line\">Successfully built absl-py termcolor wrapt</span><br><span class=\"line\">distributed 1.21.8 requires msgpack, <span class=\"built_in\">which</span> is not installed.</span><br><span class=\"line\">tb-nightly 1.14.0a20190603 has requirement setuptools&gt;=41.0.0, but you<span class=\"string\">&#x27;ll have setuptools 39.1.0 which is incompatible.</span></span><br><span class=\"line\"><span class=\"string\">Installing collected packages: protobuf, absl-py, google-pasta, termcolor, numpy, keras-preprocessing, gast, astor, wrapt, keras-applications, grpcio, tf-estimator-nightly, markdown, tb-nightly, tensorflow-gpu</span></span><br><span class=\"line\"><span class=\"string\">  Found existing installation: numpy 1.14.3</span></span><br><span class=\"line\"><span class=\"string\">    Uninstalling numpy-1.14.3:</span></span><br><span class=\"line\"><span class=\"string\">      Successfully uninstalled numpy-1.14.3</span></span><br><span class=\"line\"><span class=\"string\">  Found existing installation: wrapt 1.10.11</span></span><br><span class=\"line\"><span class=\"string\">Cannot uninstall &#x27;</span>wrapt<span class=\"string\">&#x27;. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.</span></span><br></pre></td></tr></table></figure>\n\n<p>(2) succeed install, faile import</p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">~$ pip install msgpack</span><br><span class=\"line\">Looking <span class=\"keyword\">in</span> indexes: https://pypi.tuna.tsinghua.edu.cn/simple</span><br><span class=\"line\">Collecting msgpack</span><br><span class=\"line\">  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/3d/a8/e01fea81691749044a7bfd44536483a296d9c0a7ed4ec8810a229435547c/msgpack-0.6.2-cp36-cp36m-manylinux1_x86_64.whl (249kB)</span><br><span class=\"line\">    100% |████████████████████████████████| 256kB 3.6MB/s</span><br><span class=\"line\">Installing collected packages: msgpack</span><br><span class=\"line\">Successfully installed msgpack-0.6.2</span><br><span class=\"line\">~$ pip install --ignore-installed wrapt</span><br><span class=\"line\">Looking <span class=\"keyword\">in</span> indexes: https://pypi.tuna.tsinghua.edu.cn/simple</span><br><span class=\"line\">Collecting wrapt</span><br><span class=\"line\">Installing collected packages: wrapt</span><br><span class=\"line\">Successfully installed wrapt-1.11.2</span><br><span class=\"line\">You are using pip version 10.0.1, however version 20.0.2 is available.</span><br><span class=\"line\">You should consider upgrading via the <span class=\"string\">&#x27;pip install --upgrade pip&#x27;</span> <span class=\"built_in\">command</span>.</span><br><span class=\"line\">~$</span><br></pre></td></tr></table></figure>\n\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br><span class=\"line\">39</span><br><span class=\"line\">40</span><br><span class=\"line\">41</span><br><span class=\"line\">42</span><br><span class=\"line\">43</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">~$ pip install tensorflow-gpu==2.0.0b0</span><br><span class=\"line\">Looking <span class=\"keyword\">in</span> indexes: https://pypi.tuna.tsinghua.edu.cn/simple</span><br><span class=\"line\">Collecting tensorflow-gpu==2.0.0b0</span><br><span class=\"line\">  Downloading tensorflow_gpu-2.0.0b0-cp36-cp36m-manylinux1_x86_64.whl (348.8MB)</span><br><span class=\"line\">    100% |████████████████████████████████| 348.9MB 296kB/s</span><br><span class=\"line\">Collecting grpcio&gt;=1.8.6 (from tensorflow-gpu==2.0.0b0)</span><br><span class=\"line\">  Downloading grpcio-1.27.1-cp36-cp36m-manylinux1_x86_64.whl (2.7MB)</span><br><span class=\"line\">    100% |████████████████████████████████| 2.7MB 13.3MB/s</span><br><span class=\"line\">Requirement already satisfied: google-pasta&gt;=0.1.6 <span class=\"keyword\">in</span> ./anaconda3/lib/python3.6/site-packages (from tensorflow-gpu==2.0.0b0) (0.1.8)</span><br><span class=\"line\">Requirement already satisfied: gast&gt;=0.2.0 <span class=\"keyword\">in</span> ./anaconda3/lib/python3.6/site-packages (from tensorflow-gpu==2.0.0b0) (0.3.3)</span><br><span class=\"line\">Requirement already satisfied: numpy&lt;2.0,&gt;=1.14.5 <span class=\"keyword\">in</span> ./anaconda3/lib/python3.6/site-packages (from tensorflow-gpu==2.0.0b0) (1.18.1)</span><br><span class=\"line\">Collecting tb-nightly&lt;1.14.0a20190604,&gt;=1.14.0a20190603 (from tensorflow-gpu==2.0.0b0)</span><br><span class=\"line\">  Downloading tb_nightly-1.14.0a20190603-py3-none-any.whl (3.1MB)</span><br><span class=\"line\">    100% |████████████████████████████████| 3.1MB 34.7MB/s</span><br><span class=\"line\">Requirement already satisfied: protobuf&gt;=3.6.1 <span class=\"keyword\">in</span> ./anaconda3/lib/python3.6/site-packages (from tensorflow-gpu==2.0.0b0) (3.11.3)</span><br><span class=\"line\">Requirement already satisfied: termcolor&gt;=1.1.0 <span class=\"keyword\">in</span> ./anaconda3/lib/python3.6/site-packages (from tensorflow-gpu==2.0.0b0) (1.1.0)</span><br><span class=\"line\">Requirement already satisfied: absl-py&gt;=0.7.0 <span class=\"keyword\">in</span> ./anaconda3/lib/python3.6/site-packages (from tensorflow-gpu==2.0.0b0) (0.9.0)</span><br><span class=\"line\">Collecting keras-applications&gt;=1.0.6 (from tensorflow-gpu==2.0.0b0)</span><br><span class=\"line\">  Downloading Keras_Applications-1.0.8-py3-none-any.whl (50kB)</span><br><span class=\"line\">    100% |████████████████████████████████| 51kB 27.3MB/s</span><br><span class=\"line\">Requirement already satisfied: wheel&gt;=0.26 <span class=\"keyword\">in</span> ./anaconda3/lib/python3.6/site-packages (from tensorflow-gpu==2.0.0b0) (0.31.1)</span><br><span class=\"line\">Requirement already satisfied: six&gt;=1.10.0 <span class=\"keyword\">in</span> ./anaconda3/lib/python3.6/site-packages (from tensorflow-gpu==2.0.0b0) (1.11.0)</span><br><span class=\"line\">Requirement already satisfied: astor&gt;=0.6.0 <span class=\"keyword\">in</span> ./anaconda3/lib/python3.6/site-packages (from tensorflow-gpu==2.0.0b0) (0.8.1)</span><br><span class=\"line\">Requirement already satisfied: wrapt&gt;=1.11.1 <span class=\"keyword\">in</span> ./anaconda3/lib/python3.6/site-packages (from tensorflow-gpu==2.0.0b0) (1.11.2)</span><br><span class=\"line\">Requirement already satisfied: keras-preprocessing&gt;=1.0.5 <span class=\"keyword\">in</span> ./anaconda3/lib/python3.6/site-packages (from tensorflow-gpu==2.0.0b0) (1.1.0)</span><br><span class=\"line\">Collecting tf-estimator-nightly&lt;1.14.0.dev2019060502,&gt;=1.14.0.dev2019060501 (from tensorflow-gpu==2.0.0b0)</span><br><span class=\"line\">  Downloading tf_estimator_nightly-1.14.0.dev2019060501-py2.py3-none-any.whl (496kB)</span><br><span class=\"line\">    100% |████████████████████████████████| 501kB 12.7MB/s</span><br><span class=\"line\">Collecting markdown&gt;=2.6.8 (from tb-nightly&lt;1.14.0a20190604,&gt;=1.14.0a20190603-&gt;tensorflow-gpu==2.0.0b0)</span><br><span class=\"line\">  Downloading Markdown-3.2-py2.py3-none-any.whl (88kB)</span><br><span class=\"line\">    100% |████████████████████████████████| 92kB 16.3MB/s</span><br><span class=\"line\">Collecting setuptools&gt;=41.0.0 (from tb-nightly&lt;1.14.0a20190604,&gt;=1.14.0a20190603-&gt;tensorflow-gpu==2.0.0b0)</span><br><span class=\"line\">  Downloading setuptools-45.1.0-py3-none-any.whl (583kB)</span><br><span class=\"line\">    100% |████████████████████████████████| 593kB 28.1MB/s</span><br><span class=\"line\">Requirement already satisfied: werkzeug&gt;=0.11.15 <span class=\"keyword\">in</span> ./anaconda3/lib/python3.6/site-packages (from tb-nightly&lt;1.14.0a20190604,&gt;=1.14.0a20190603-&gt;tensorflow-gpu==2.0.0b0) (0.14.1)</span><br><span class=\"line\">Requirement already satisfied: h5py <span class=\"keyword\">in</span> ./anaconda3/lib/python3.6/site-packages (from keras-applications&gt;=1.0.6-&gt;tensorflow-gpu==2.0.0b0) (2.7.1)</span><br><span class=\"line\">Installing collected packages: grpcio, setuptools, markdown, tb-nightly, keras-applications, tf-estimator-nightly, tensorflow-gpu</span><br><span class=\"line\">  Found existing installation: setuptools 39.1.0</span><br><span class=\"line\">    Uninstalling setuptools-39.1.0:</span><br><span class=\"line\">      Successfully uninstalled setuptools-39.1.0</span><br><span class=\"line\">Successfully installed grpcio-1.27.1 keras-applications-1.0.8 markdown-3.2 setuptools-45.1.0 tb-nightly-1.14.0a20190603 tensorflow-gpu-2.0.0b0 tf-estimator-nightly-1.14.0.dev2019060501</span><br><span class=\"line\">You are using pip version 10.0.1, however version 20.0.2 is available.</span><br><span class=\"line\">You should consider upgrading via the <span class=\"string\">&#x27;pip install --upgrade pip&#x27;</span> <span class=\"built_in\">command</span>.</span><br></pre></td></tr></table></figure>\n\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">~$ python</span><br><span class=\"line\">Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56)</span><br><span class=\"line\">[GCC 7.2.0] on linux</span><br><span class=\"line\">Type <span class=\"string\">&quot;help&quot;</span>, <span class=\"string\">&quot;copyright&quot;</span>, <span class=\"string\">&quot;credits&quot;</span> or <span class=\"string\">&quot;license&quot;</span> <span class=\"keyword\">for</span> more information.</span><br><span class=\"line\">&gt;&gt;&gt; import tensorflow as tf</span><br><span class=\"line\">/home/eustomaqua/anaconda3/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:516: FutureWarning: Passing (<span class=\"built_in\">type</span>, 1) or <span class=\"string\">&#x27;1type&#x27;</span> as a synonym of <span class=\"built_in\">type</span> is deprecated; <span class=\"keyword\">in</span> a future version of numpy, it will be understood as (<span class=\"built_in\">type</span>, (1,)) / <span class=\"string\">&#x27;(1,)type&#x27;</span>.</span><br><span class=\"line\">  _np_qint8 = np.dtype([(<span class=\"string\">&quot;qint8&quot;</span>, np.int8, 1)])</span><br><span class=\"line\">/home/eustomaqua/anaconda3/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:517: FutureWarning: Passing (<span class=\"built_in\">type</span>, 1) or <span class=\"string\">&#x27;1type&#x27;</span> as a synonym of <span class=\"built_in\">type</span> is deprecated; <span class=\"keyword\">in</span> a future version of numpy, it will be understood as (<span class=\"built_in\">type</span>, (1,)) / <span class=\"string\">&#x27;(1,)type&#x27;</span>.</span><br><span class=\"line\">  _np_quint8 = np.dtype([(<span class=\"string\">&quot;quint8&quot;</span>, np.uint8, 1)])</span><br><span class=\"line\">/home/eustomaqua/anaconda3/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:518: FutureWarning: Passing (<span class=\"built_in\">type</span>, 1) or <span class=\"string\">&#x27;1type&#x27;</span> as a synonym of <span class=\"built_in\">type</span> is deprecated; <span class=\"keyword\">in</span> a future version of numpy, it will be understood as (<span class=\"built_in\">type</span>, (1,)) / <span class=\"string\">&#x27;(1,)type&#x27;</span>.</span><br><span class=\"line\">  _np_qint16 = np.dtype([(<span class=\"string\">&quot;qint16&quot;</span>, np.int16, 1)])</span><br><span class=\"line\">/home/eustomaqua/anaconda3/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:519: FutureWarning: Passing (<span class=\"built_in\">type</span>, 1) or <span class=\"string\">&#x27;1type&#x27;</span> as a synonym of <span class=\"built_in\">type</span> is deprecated; <span class=\"keyword\">in</span> a future version of numpy, it will be understood as (<span class=\"built_in\">type</span>, (1,)) / <span class=\"string\">&#x27;(1,)type&#x27;</span>.</span><br><span class=\"line\">  _np_quint16 = np.dtype([(<span class=\"string\">&quot;quint16&quot;</span>, np.uint16, 1)])</span><br><span class=\"line\">/home/eustomaqua/anaconda3/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:520: FutureWarning: Passing (<span class=\"built_in\">type</span>, 1) or <span class=\"string\">&#x27;1type&#x27;</span> as a synonym of <span class=\"built_in\">type</span> is deprecated; <span class=\"keyword\">in</span> a future version of numpy, it will be understood as (<span class=\"built_in\">type</span>, (1,)) / <span class=\"string\">&#x27;(1,)type&#x27;</span>.</span><br><span class=\"line\">  _np_qint32 = np.dtype([(<span class=\"string\">&quot;qint32&quot;</span>, np.int32, 1)])</span><br><span class=\"line\">/home/eustomaqua/anaconda3/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:525: FutureWarning: Passing (<span class=\"built_in\">type</span>, 1) or <span class=\"string\">&#x27;1type&#x27;</span> as a synonym of <span class=\"built_in\">type</span> is deprecated; <span class=\"keyword\">in</span> a future version of numpy, it will be understood as (<span class=\"built_in\">type</span>, (1,)) / <span class=\"string\">&#x27;(1,)type&#x27;</span>.</span><br><span class=\"line\">  np_resource = np.dtype([(<span class=\"string\">&quot;resource&quot;</span>, np.ubyte, 1)])</span><br><span class=\"line\">/home/eustomaqua/anaconda3/lib/python3.6/site-packages/h5py/__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `<span class=\"built_in\">float</span>` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(<span class=\"built_in\">float</span>).<span class=\"built_in\">type</span>`.</span><br><span class=\"line\">  from ._conv import register_converters as _register_converters</span><br><span class=\"line\">/home/eustomaqua/anaconda3/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:541: FutureWarning: Passing (<span class=\"built_in\">type</span>, 1) or <span class=\"string\">&#x27;1type&#x27;</span> as a synonym of <span class=\"built_in\">type</span> is deprecated; <span class=\"keyword\">in</span> a future version of numpy, it will be understood as (<span class=\"built_in\">type</span>, (1,)) / <span class=\"string\">&#x27;(1,)type&#x27;</span>.</span><br><span class=\"line\">  _np_qint8 = np.dtype([(<span class=\"string\">&quot;qint8&quot;</span>, np.int8, 1)])</span><br><span class=\"line\">/home/eustomaqua/anaconda3/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:542: FutureWarning: Passing (<span class=\"built_in\">type</span>, 1) or <span class=\"string\">&#x27;1type&#x27;</span> as a synonym of <span class=\"built_in\">type</span> is deprecated; <span class=\"keyword\">in</span> a future version of numpy, it will be understood as (<span class=\"built_in\">type</span>, (1,)) / <span class=\"string\">&#x27;(1,)type&#x27;</span>.</span><br><span class=\"line\">  _np_quint8 = np.dtype([(<span class=\"string\">&quot;quint8&quot;</span>, np.uint8, 1)])</span><br><span class=\"line\">/home/eustomaqua/anaconda3/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:543: FutureWarning: Passing (<span class=\"built_in\">type</span>, 1) or <span class=\"string\">&#x27;1type&#x27;</span> as a synonym of <span class=\"built_in\">type</span> is deprecated; <span class=\"keyword\">in</span> a future version of numpy, it will be understood as (<span class=\"built_in\">type</span>, (1,)) / <span class=\"string\">&#x27;(1,)type&#x27;</span>.</span><br><span class=\"line\">  _np_qint16 = np.dtype([(<span class=\"string\">&quot;qint16&quot;</span>, np.int16, 1)])</span><br><span class=\"line\">/home/eustomaqua/anaconda3/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:544: FutureWarning: Passing (<span class=\"built_in\">type</span>, 1) or <span class=\"string\">&#x27;1type&#x27;</span> as a synonym of <span class=\"built_in\">type</span> is deprecated; <span class=\"keyword\">in</span> a future version of numpy, it will be understood as (<span class=\"built_in\">type</span>, (1,)) / <span class=\"string\">&#x27;(1,)type&#x27;</span>.</span><br><span class=\"line\">  _np_quint16 = np.dtype([(<span class=\"string\">&quot;quint16&quot;</span>, np.uint16, 1)])</span><br><span class=\"line\">/home/eustomaqua/anaconda3/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:545: FutureWarning: Passing (<span class=\"built_in\">type</span>, 1) or <span class=\"string\">&#x27;1type&#x27;</span> as a synonym of <span class=\"built_in\">type</span> is deprecated; <span class=\"keyword\">in</span> a future version of numpy, it will be understood as (<span class=\"built_in\">type</span>, (1,)) / <span class=\"string\">&#x27;(1,)type&#x27;</span>.</span><br><span class=\"line\">  _np_qint32 = np.dtype([(<span class=\"string\">&quot;qint32&quot;</span>, np.int32, 1)])</span><br><span class=\"line\">/home/eustomaqua/anaconda3/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:550: FutureWarning: Passing (<span class=\"built_in\">type</span>, 1) or <span class=\"string\">&#x27;1type&#x27;</span> as a synonym of <span class=\"built_in\">type</span> is deprecated; <span class=\"keyword\">in</span> a future version of numpy, it will be understood as (<span class=\"built_in\">type</span>, (1,)) / <span class=\"string\">&#x27;(1,)type&#x27;</span>.</span><br><span class=\"line\">  np_resource = np.dtype([(<span class=\"string\">&quot;resource&quot;</span>, np.ubyte, 1)])</span><br><span class=\"line\">&gt;&gt;&gt;</span><br><span class=\"line\">[7]+  Stopped                 python</span><br></pre></td></tr></table></figure>\n\n<p>(3) warning import</p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">~$ pip install numpy==1.16.2</span><br><span class=\"line\">Looking <span class=\"keyword\">in</span> indexes: https://pypi.tuna.tsinghua.edu.cn/simple</span><br><span class=\"line\">Collecting numpy==1.16.2</span><br><span class=\"line\">  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/35/d5/4f8410ac303e690144f0a0603c4b8fd3b986feb2749c435f7cdbb288f17e/numpy-1.16.2-cp36-cp36m-manylinux1_x86_64.whl (17.3MB)</span><br><span class=\"line\">    100% |████████████████████████████████| 17.3MB 2.2MB/s</span><br><span class=\"line\">Installing collected packages: numpy</span><br><span class=\"line\">  Found existing installation: numpy 1.18.1</span><br><span class=\"line\">    Uninstalling numpy-1.18.1:</span><br><span class=\"line\">      Successfully uninstalled numpy-1.18.1</span><br><span class=\"line\">Successfully installed numpy-1.16.2</span><br><span class=\"line\">You are using pip version 10.0.1, however version 20.0.2 is available.</span><br><span class=\"line\">You should consider upgrading via the <span class=\"string\">&#x27;pip install --upgrade pip&#x27;</span> <span class=\"built_in\">command</span>.</span><br><span class=\"line\"></span><br><span class=\"line\">~$ python</span><br><span class=\"line\">Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56)</span><br><span class=\"line\">[GCC 7.2.0] on linux</span><br><span class=\"line\">Type <span class=\"string\">&quot;help&quot;</span>, <span class=\"string\">&quot;copyright&quot;</span>, <span class=\"string\">&quot;credits&quot;</span> or <span class=\"string\">&quot;license&quot;</span> <span class=\"keyword\">for</span> more information.</span><br><span class=\"line\">&gt;&gt;&gt; import tensorflow as tf</span><br><span class=\"line\">/home/eustomaqua/anaconda3/lib/python3.6/site-packages/h5py/__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `<span class=\"built_in\">float</span>` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(<span class=\"built_in\">float</span>).<span class=\"built_in\">type</span>`.</span><br><span class=\"line\">  from ._conv import register_converters as _register_converters</span><br><span class=\"line\">&gt;&gt;&gt;</span><br><span class=\"line\">[8]+  Stopped                 python</span><br></pre></td></tr></table></figure>\n\n<p>(4) succeed import, failed no cuda</p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br><span class=\"line\">39</span><br><span class=\"line\">40</span><br><span class=\"line\">41</span><br><span class=\"line\">42</span><br><span class=\"line\">43</span><br><span class=\"line\">44</span><br><span class=\"line\">45</span><br><span class=\"line\">46</span><br><span class=\"line\">47</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">~$ pip install -U h5py</span><br><span class=\"line\">Looking <span class=\"keyword\">in</span> indexes: https://pypi.tuna.tsinghua.edu.cn/simple</span><br><span class=\"line\">Collecting h5py</span><br><span class=\"line\">  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/60/06/cafdd44889200e5438b897388f3075b52a8ef01f28a17366d91de0fa2d05/h5py-2.10.0-cp36-cp36m-manylinux1_x86_64.whl (2.9MB)</span><br><span class=\"line\">    100% |████████████████████████████████| 2.9MB 13.5MB/s</span><br><span class=\"line\">Requirement not upgraded as not directly required: numpy&gt;=1.7 <span class=\"keyword\">in</span> ./anaconda3/lib/python3.6/site-packages (from h5py) (1.16.2)</span><br><span class=\"line\">Requirement not upgraded as not directly required: six <span class=\"keyword\">in</span> ./anaconda3/lib/python3.6/site-packages (from h5py) (1.11.0)</span><br><span class=\"line\">Installing collected packages: h5py</span><br><span class=\"line\">  Found existing installation: h5py 2.7.1</span><br><span class=\"line\">    Uninstalling h5py-2.7.1:</span><br><span class=\"line\">      Successfully uninstalled h5py-2.7.1</span><br><span class=\"line\">Successfully installed h5py-2.10.0</span><br><span class=\"line\">You are using pip version 10.0.1, however version 20.0.2 is available.</span><br><span class=\"line\">You should consider upgrading via the <span class=\"string\">&#x27;pip install --upgrade pip&#x27;</span> <span class=\"built_in\">command</span>.</span><br><span class=\"line\"></span><br><span class=\"line\">~$ python</span><br><span class=\"line\">Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56)</span><br><span class=\"line\">[GCC 7.2.0] on linux</span><br><span class=\"line\">Type <span class=\"string\">&quot;help&quot;</span>, <span class=\"string\">&quot;copyright&quot;</span>, <span class=\"string\">&quot;credits&quot;</span> or <span class=\"string\">&quot;license&quot;</span> <span class=\"keyword\">for</span> more information.</span><br><span class=\"line\">&gt;&gt;&gt; import tensorflow as tf</span><br><span class=\"line\">&gt;&gt;&gt; tf.test.is_gpu_available()</span><br><span class=\"line\">2020-02-08 23:52:36.691031: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA</span><br><span class=\"line\">2020-02-08 23:52:36.706948: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcuda.so.1</span><br><span class=\"line\">2020-02-08 23:52:36.853793: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:1006] successful NUMA node <span class=\"built_in\">read</span> from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero</span><br><span class=\"line\">2020-02-08 23:52:36.854165: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x55f4173381e0 executing computations on platform CUDA. Devices:</span><br><span class=\"line\">2020-02-08 23:52:36.854183: I tensorflow/compiler/xla/service/service.cc:175]   StreamExecutor device (0): GeForce RTX 2070 SUPER, Compute Capability 7.5</span><br><span class=\"line\">2020-02-08 23:52:36.873251: I tensorflow/core/platform/profile_utils/cpu_utils.cc:94] CPU Frequency: 3600000000 Hz</span><br><span class=\"line\">2020-02-08 23:52:36.873745: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x55f417727de0 executing computations on platform Host. Devices:</span><br><span class=\"line\">2020-02-08 23:52:36.873759: I tensorflow/compiler/xla/service/service.cc:175]   StreamExecutor device (0): &lt;undefined&gt;, &lt;undefined&gt;</span><br><span class=\"line\">2020-02-08 23:52:36.873898: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:1006] successful NUMA node <span class=\"built_in\">read</span> from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero</span><br><span class=\"line\">2020-02-08 23:52:36.874134: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1640] Found device 0 with properties:</span><br><span class=\"line\">name: GeForce RTX 2070 SUPER major: 7 minor: 5 memoryClockRate(GHz): 1.8</span><br><span class=\"line\">pciBusID: 0000:01:00.0</span><br><span class=\"line\">2020-02-08 23:52:36.874223: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Could not dlopen library <span class=\"string\">&#x27;libcudart.so.10.0&#x27;</span>; dlerror: libcudart.so.10.0: cannot open shared object file: No such file or directory</span><br><span class=\"line\">2020-02-08 23:52:36.874269: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Could not dlopen library <span class=\"string\">&#x27;libcublas.so.10.0&#x27;</span>; dlerror: libcublas.so.10.0: cannot open shared object file: No such file or directory</span><br><span class=\"line\">2020-02-08 23:52:36.874312: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Could not dlopen library <span class=\"string\">&#x27;libcufft.so.10.0&#x27;</span>; dlerror: libcufft.so.10.0: cannot open shared object file: No such file or directory</span><br><span class=\"line\">2020-02-08 23:52:36.874353: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Could not dlopen library <span class=\"string\">&#x27;libcurand.so.10.0&#x27;</span>; dlerror: libcurand.so.10.0: cannot open shared object file: No such file or directory</span><br><span class=\"line\">2020-02-08 23:52:36.874395: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Could not dlopen library <span class=\"string\">&#x27;libcusolver.so.10.0&#x27;</span>; dlerror: libcusolver.so.10.0: cannot open shared object file: No such file or directory</span><br><span class=\"line\">2020-02-08 23:52:36.874435: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Could not dlopen library <span class=\"string\">&#x27;libcusparse.so.10.0&#x27;</span>; dlerror: libcusparse.so.10.0: cannot open shared object file: No such file or directory</span><br><span class=\"line\">2020-02-08 23:52:36.874476: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Could not dlopen library <span class=\"string\">&#x27;libcudnn.so.7&#x27;</span>; dlerror: libcudnn.so.7: cannot open shared object file: No such file or directory</span><br><span class=\"line\">2020-02-08 23:52:36.874484: W tensorflow/core/common_runtime/gpu/gpu_device.cc:1663] Cannot dlopen some GPU libraries. Skipping registering GPU devices...</span><br><span class=\"line\">2020-02-08 23:52:36.874494: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1181] Device interconnect StreamExecutor with strength 1 edge matrix:</span><br><span class=\"line\">2020-02-08 23:52:36.874499: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1187]      0</span><br><span class=\"line\">2020-02-08 23:52:36.874504: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1200] 0:   N</span><br><span class=\"line\">False</span><br><span class=\"line\">&gt;&gt;&gt;</span><br><span class=\"line\">[9]+  Stopped                 python</span><br></pre></td></tr></table></figure>\n\n<p>(5) succeed</p>\n<p><strong>错因：</strong> 之前的 LD_LIBRARY_PATH 误写成 LD_LIBARAY_PATH 了<br>错误写法：  export LD_LIBARAY_PATH&#x3D;$LD_LIBRARY_PATH:$HOME&#x2F;Software&#x2F;cuda-10.0&#x2F;lib64&#x2F;<br>正确写法：  export LD_LIBRARY_PATH&#x3D;$LD_LIBRARY_PATH:$HOME&#x2F;Software&#x2F;cuda-10.0&#x2F;lib64&#x2F;  </p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br><span class=\"line\">39</span><br><span class=\"line\">40</span><br><span class=\"line\">41</span><br><span class=\"line\">42</span><br><span class=\"line\">43</span><br><span class=\"line\">44</span><br><span class=\"line\">45</span><br><span class=\"line\">46</span><br><span class=\"line\">47</span><br><span class=\"line\">48</span><br><span class=\"line\">49</span><br><span class=\"line\">50</span><br><span class=\"line\">51</span><br><span class=\"line\">52</span><br><span class=\"line\">53</span><br><span class=\"line\">54</span><br><span class=\"line\">55</span><br><span class=\"line\">56</span><br><span class=\"line\">57</span><br><span class=\"line\">58</span><br><span class=\"line\">59</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">~$ LD_LIBRARY_PATH</span><br><span class=\"line\">LD_LIBRARY_PATH: <span class=\"built_in\">command</span> not found</span><br><span class=\"line\">~$ <span class=\"built_in\">source</span> ~/.bashrc</span><br><span class=\"line\">~$ vim ~/.bashrc</span><br><span class=\"line\">~$ <span class=\"built_in\">source</span> ~/.bashrc</span><br><span class=\"line\">~$ LD_LIBRARY_PATH</span><br><span class=\"line\">LD_LIBRARY_PATH: <span class=\"built_in\">command</span> not found</span><br><span class=\"line\">~$</span><br><span class=\"line\">~$</span><br><span class=\"line\">~$</span><br><span class=\"line\">~$ vim ~/.bashrc</span><br><span class=\"line\">~$ <span class=\"built_in\">source</span> ~/.bashrc</span><br><span class=\"line\">~$ PATH</span><br><span class=\"line\">PATH: <span class=\"built_in\">command</span> not found</span><br><span class=\"line\">~$ <span class=\"built_in\">echo</span> PATH</span><br><span class=\"line\">PATH</span><br><span class=\"line\">~$ <span class=\"built_in\">echo</span> <span class=\"variable\">$PATH</span></span><br><span class=\"line\">/home/eustomaqua/Software/cuda-10.0/bin:/home/eustomaqua/anaconda3/bin:/home/eustomaqua/Software/cuda-10.0/bin:/home/eustomaqua/anaconda3/bin:/home/eustomaqua/Software/cuda-10.0/bin:/home/eustomaqua/anaconda3/bin:/home/eustomaqua/Software/cuda-10.0/bin:/home/eustomaqua/anaconda3/bin:/home/eustomaqua/Software/cuda-10.0/bin:/home/eustomaqua/anaconda3/bin:/home/eustomaqua/anaconda3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin</span><br><span class=\"line\">~$ <span class=\"built_in\">echo</span> <span class=\"variable\">$LD_LIBRARY_PATH</span></span><br><span class=\"line\">:/home/eustomaqua/Software/cuda-10.0/lib64/:/home/eustomaqua/Software/cuda-10.0/lib64/</span><br><span class=\"line\"></span><br><span class=\"line\">~$ python</span><br><span class=\"line\">Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56)</span><br><span class=\"line\">[GCC 7.2.0] on linux</span><br><span class=\"line\">Type <span class=\"string\">&quot;help&quot;</span>, <span class=\"string\">&quot;copyright&quot;</span>, <span class=\"string\">&quot;credits&quot;</span> or <span class=\"string\">&quot;license&quot;</span> <span class=\"keyword\">for</span> more information.</span><br><span class=\"line\">&gt;&gt;&gt; import tensorflow as tf</span><br><span class=\"line\">&gt;&gt;&gt; tf.test.is_gpu_available()</span><br><span class=\"line\">2020-02-09 00:08:17.326460: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA</span><br><span class=\"line\">2020-02-09 00:08:17.343444: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcuda.so.1</span><br><span class=\"line\">2020-02-09 00:08:17.381171: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:1006] successful NUMA node <span class=\"built_in\">read</span> from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero</span><br><span class=\"line\">2020-02-09 00:08:17.381486: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x55d5564a5150 executing computations on platform CUDA. Devices:</span><br><span class=\"line\">2020-02-09 00:08:17.381501: I tensorflow/compiler/xla/service/service.cc:175]   StreamExecutor device (0): GeForce RTX 2070 SUPER, Compute Capability 7.5</span><br><span class=\"line\">2020-02-09 00:08:17.405235: I tensorflow/core/platform/profile_utils/cpu_utils.cc:94] CPU Frequency: 3600000000 Hz</span><br><span class=\"line\">2020-02-09 00:08:17.405621: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x55d556894ab0 executing computations on platform Host. Devices:</span><br><span class=\"line\">2020-02-09 00:08:17.405633: I tensorflow/compiler/xla/service/service.cc:175]   StreamExecutor device (0): &lt;undefined&gt;, &lt;undefined&gt;</span><br><span class=\"line\">2020-02-09 00:08:17.405743: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:1006] successful NUMA node <span class=\"built_in\">read</span> from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero</span><br><span class=\"line\">2020-02-09 00:08:17.405958: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1640] Found device 0 with properties:</span><br><span class=\"line\">name: GeForce RTX 2070 SUPER major: 7 minor: 5 memoryClockRate(GHz): 1.8</span><br><span class=\"line\">pciBusID: 0000:01:00.0</span><br><span class=\"line\">2020-02-09 00:08:17.406103: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcudart.so.10.0</span><br><span class=\"line\">2020-02-09 00:08:17.406736: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcublas.so.10.0</span><br><span class=\"line\">2020-02-09 00:08:17.407325: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcufft.so.10.0</span><br><span class=\"line\">2020-02-09 00:08:17.407470: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcurand.so.10.0</span><br><span class=\"line\">2020-02-09 00:08:17.408220: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcusolver.so.10.0</span><br><span class=\"line\">2020-02-09 00:08:17.408804: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcusparse.so.10.0</span><br><span class=\"line\">2020-02-09 00:08:17.410651: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcudnn.so.7</span><br><span class=\"line\">2020-02-09 00:08:17.410718: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:1006] successful NUMA node <span class=\"built_in\">read</span> from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero</span><br><span class=\"line\">2020-02-09 00:08:17.410960: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:1006] successful NUMA node <span class=\"built_in\">read</span> from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero</span><br><span class=\"line\">2020-02-09 00:08:17.411148: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1763] Adding visible gpu devices: 0</span><br><span class=\"line\">2020-02-09 00:08:17.411170: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcudart.so.10.0</span><br><span class=\"line\">2020-02-09 00:08:17.411687: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1181] Device interconnect StreamExecutor with strength 1 edge matrix:</span><br><span class=\"line\">2020-02-09 00:08:17.411696: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1187]      0</span><br><span class=\"line\">2020-02-09 00:08:17.411700: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1200] 0:   N</span><br><span class=\"line\">2020-02-09 00:08:17.414113: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:1006] successful NUMA node <span class=\"built_in\">read</span> from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero</span><br><span class=\"line\">2020-02-09 00:08:17.414336: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:1006] successful NUMA node <span class=\"built_in\">read</span> from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero</span><br><span class=\"line\">2020-02-09 00:08:17.414546: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1326] Created TensorFlow device (/device:GPU:0 with 7014 MB memory) -&gt; physical GPU (device: 0, name: GeForce RTX 2070 SUPER, pci bus <span class=\"built_in\">id</span>: 0000:01:00.0, compute capability: 7.5)</span><br><span class=\"line\">True</span><br><span class=\"line\">&gt;&gt;&gt;</span><br><span class=\"line\">[13]+  Stopped                 python</span><br></pre></td></tr></table></figure>\n\n<h3 id=\"refs-3\"><a href=\"#refs-3\" class=\"headerlink\" title=\"refs\"></a>refs</h3><p><a href=\"https://blog.csdn.net/u012654847/article/details/80875838\">安装Tensorlayer报错“Cannot uninstall ‘xxx’”的解决方案</a><br><a href=\"https://github.com/tensorflow/tensorflow/issues/30427\">FutureWarning: Deprecated numpy API calls in tf.python.framework.dtypes</a><br><a href=\"https://github.com/h5py/h5py/issues/961\">FutureWarning: Conversion of the second argument of issubdtype from <code>float</code> to <code>np.floating</code> is deprecated</a>  </p>\n<p><a href=\"https://www.tensorflow.org/install/gpu\">TensorFlow Official: GPU support</a><br><a href=\"https://github.com/tensorflow/tensorflow/issues/20271\">ImportError: libcudnn.so.7: cannot open shared object file: No such file or directory</a><br><a href=\"https://blog.csdn.net/weixin_40298200/article/details/79420758\">【UBUNTU深度学习环境】ImportError: libcudnn.so.7: cannot open shared object file: No such file or directory</a>  </p>\n<p><a href=\"https://zhuanlan.zhihu.com/p/35675109\">PyTorch使用tensorboardX</a><br><a href=\"https://www.jianshu.com/p/46eb3004beca\">Pytorch使用tensorboardX可视化。超详细！！！</a><br><a href=\"https://blog.csdn.net/qq_39575835/article/details/89160828\">官方总结 tensorboardX 使用教程</a>  </p>\n<p><a href=\"https://zhuanlan.zhihu.com/p/77385238\">ubuntu 18.04 + Tensorflow-gpu 2.0环境搭建</a><br><a href=\"https://zhuanlan.zhihu.com/p/61296818\">TensorFlow 2.0 Alpha的初步尝试：安装及填坑小记</a>  </p>\n<h2 id=\"Issue-ssh-新终端必须先-source-bashrc-才能正常用自己的-python\"><a href=\"#Issue-ssh-新终端必须先-source-bashrc-才能正常用自己的-python\" class=\"headerlink\" title=\"Issue: ssh 新终端必须先 source .bashrc 才能正常用自己的 python\"></a>Issue: ssh 新终端必须先 source .bashrc 才能正常用自己的 python</h2><p>important:<br><a href=\"https://qjzd.net/topic/56777682984f90d869bd23fc\">社区环境搭建 使用ssh登入ubuntu不执行.bashrc解决方法</a>  </p>\n<p>open a terminal:  </p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">vim ~/.bash_profile</span><br></pre></td></tr></table></figure>\n\n<p>in .bash_profile file:  </p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"comment\"># if running bash</span></span><br><span class=\"line\"><span class=\"keyword\">if</span> [ -n <span class=\"string\">&quot;<span class=\"variable\">$BASH_VERSION</span>&quot;</span> ]; <span class=\"keyword\">then</span></span><br><span class=\"line\">    <span class=\"comment\"># include .bashrc if it exists</span></span><br><span class=\"line\">    <span class=\"keyword\">if</span> [ -f <span class=\"string\">&quot;<span class=\"variable\">$HOME</span>/.bashrc&quot;</span> ]; <span class=\"keyword\">then</span></span><br><span class=\"line\">        . <span class=\"string\">&quot;<span class=\"variable\">$HOME</span>/.bashrc&quot;</span></span><br><span class=\"line\">    <span class=\"keyword\">fi</span></span><br><span class=\"line\"><span class=\"keyword\">fi</span></span><br></pre></td></tr></table></figure>\n\n<p>new terminal:</p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">python</span><br></pre></td></tr></table></figure>\n\n<p>refs:<br><a href=\"https://blog.51cto.com/xjhznick/1399938\">ubuntu 用户修改.bashrc之后，每次登录需要运行source命令才生效</a><br><a href=\"https://www.jianshu.com/p/c4946024b946\">解决.bashrc文件每次打开终端都需要source的问题</a><br><a href=\"https://blog.csdn.net/heybob/article/details/8899703\">ubuntu12.04 .bashrc设置后无效</a>  </p>\n<h2 id=\"References\"><a href=\"#References\" class=\"headerlink\" title=\"References\"></a>References</h2><h3 id=\"update-posts\"><a href=\"#update-posts\" class=\"headerlink\" title=\"update posts\"></a>update posts</h3><p>save codes</p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br><span class=\"line\">39</span><br><span class=\"line\">40</span><br><span class=\"line\">41</span><br><span class=\"line\">42</span><br><span class=\"line\">43</span><br><span class=\"line\">44</span><br><span class=\"line\">45</span><br><span class=\"line\">46</span><br><span class=\"line\">47</span><br><span class=\"line\">48</span><br><span class=\"line\">49</span><br><span class=\"line\">50</span><br><span class=\"line\">51</span><br><span class=\"line\">52</span><br><span class=\"line\">53</span><br><span class=\"line\">54</span><br><span class=\"line\">55</span><br><span class=\"line\">56</span><br><span class=\"line\">57</span><br><span class=\"line\">58</span><br><span class=\"line\">59</span><br><span class=\"line\">60</span><br><span class=\"line\">61</span><br><span class=\"line\">62</span><br><span class=\"line\">63</span><br><span class=\"line\">64</span><br><span class=\"line\">65</span><br><span class=\"line\">66</span><br><span class=\"line\">67</span><br><span class=\"line\">68</span><br><span class=\"line\">69</span><br><span class=\"line\">70</span><br><span class=\"line\">71</span><br><span class=\"line\">72</span><br><span class=\"line\">73</span><br><span class=\"line\">74</span><br><span class=\"line\">75</span><br><span class=\"line\">76</span><br><span class=\"line\">77</span><br><span class=\"line\">78</span><br><span class=\"line\">79</span><br><span class=\"line\">80</span><br><span class=\"line\">81</span><br><span class=\"line\">82</span><br><span class=\"line\">83</span><br><span class=\"line\">84</span><br><span class=\"line\">85</span><br><span class=\"line\">86</span><br><span class=\"line\">87</span><br><span class=\"line\">88</span><br><span class=\"line\">89</span><br><span class=\"line\">90</span><br><span class=\"line\">91</span><br><span class=\"line\">92</span><br><span class=\"line\">93</span><br><span class=\"line\">94</span><br><span class=\"line\">95</span><br><span class=\"line\">96</span><br><span class=\"line\">97</span><br><span class=\"line\">98</span><br><span class=\"line\">99</span><br><span class=\"line\">100</span><br><span class=\"line\">101</span><br><span class=\"line\">102</span><br><span class=\"line\">103</span><br><span class=\"line\">104</span><br><span class=\"line\">105</span><br><span class=\"line\">106</span><br><span class=\"line\">107</span><br><span class=\"line\">108</span><br><span class=\"line\">109</span><br><span class=\"line\">110</span><br><span class=\"line\">111</span><br><span class=\"line\">112</span><br><span class=\"line\">113</span><br><span class=\"line\">114</span><br><span class=\"line\">115</span><br><span class=\"line\">116</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">ubuntu@ubuntu-VirtualBox:~/eustomaqua.github.io$ git status</span><br><span class=\"line\">位于分支 hexo-next</span><br><span class=\"line\">您的分支与上游分支 <span class=\"string\">&#x27;origin/hexo-next&#x27;</span> 一致。</span><br><span class=\"line\">尚未暂存以备提交的变更：</span><br><span class=\"line\">  （使用 <span class=\"string\">&quot;git add &lt;文件&gt;...&quot;</span> 更新要提交的内容）</span><br><span class=\"line\">  （使用 <span class=\"string\">&quot;git checkout -- &lt;文件&gt;...&quot;</span> 丢弃工作区的改动）</span><br><span class=\"line\"></span><br><span class=\"line\">    修改：     hexo-next/source/_posts/2019-07-20-Kindle-SignIn-WordWise.md</span><br><span class=\"line\"></span><br><span class=\"line\">未跟踪的文件:</span><br><span class=\"line\">  （使用 <span class=\"string\">&quot;git add &lt;文件&gt;...&quot;</span> 以包含要提交的内容）</span><br><span class=\"line\"></span><br><span class=\"line\">    hexo-next/source/_posts/2020-02-08-Setup-Python-on-Linux.md</span><br><span class=\"line\"></span><br><span class=\"line\">修改尚未加入提交（使用 <span class=\"string\">&quot;git add&quot;</span> 和/或 <span class=\"string\">&quot;git commit -a&quot;</span>）</span><br><span class=\"line\">ubuntu@ubuntu-VirtualBox:~/eustomaqua.github.io$ </span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">ubuntu@ubuntu-VirtualBox:~/eustomaqua.github.io$ git add .</span><br><span class=\"line\">ubuntu@ubuntu-VirtualBox:~/eustomaqua.github.io$ git commit -m <span class=\"string\">&quot;annotations&quot;</span>  <span class=\"comment\"># 注释</span></span><br><span class=\"line\">ubuntu@ubuntu-VirtualBox:~/eustomaqua.github.io$ git push</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">ubuntu@ubuntu-VirtualBox:~/eustomaqua.github.io/hexo-next$ <span class=\"built_in\">cd</span> ..</span><br><span class=\"line\">ubuntu@ubuntu-VirtualBox:~/eustomaqua.github.io$ git status</span><br><span class=\"line\">位于分支 hexo-next</span><br><span class=\"line\">您的分支领先 <span class=\"string\">&#x27;origin/hexo-next&#x27;</span> 共 1 个提交。</span><br><span class=\"line\">  （使用 <span class=\"string\">&quot;git push&quot;</span> 来发布您的本地提交）</span><br><span class=\"line\">尚未暂存以备提交的变更：</span><br><span class=\"line\">  （使用 <span class=\"string\">&quot;git add &lt;文件&gt;...&quot;</span> 更新要提交的内容）</span><br><span class=\"line\">  （使用 <span class=\"string\">&quot;git checkout -- &lt;文件&gt;...&quot;</span> 丢弃工作区的改动）</span><br><span class=\"line\"></span><br><span class=\"line\">  修改：     hexo-next/source/_posts/2020-02-08-Setup-Python-on-Linux.md</span><br><span class=\"line\"></span><br><span class=\"line\">修改尚未加入提交（使用 <span class=\"string\">&quot;git add&quot;</span> 和/或 <span class=\"string\">&quot;git commit -a&quot;</span>）</span><br><span class=\"line\">ubuntu@ubuntu-VirtualBox:~/eustomaqua.github.io$ git add .</span><br><span class=\"line\">ubuntu@ubuntu-VirtualBox:~/eustomaqua.github.io$ git commit -m <span class=\"string\">&quot;config done on gpu&quot;</span></span><br><span class=\"line\">[hexo-next 10c854a] config <span class=\"keyword\">done</span> on gpu</span><br><span class=\"line\"> 1 file changed, 724 insertions(+), 18 deletions(-)</span><br><span class=\"line\">ubuntu@ubuntu-VirtualBox:~/eustomaqua.github.io$ git push</span><br><span class=\"line\">warning: push.default 尚未设置，它的默认值在 Git 2.0 已从 <span class=\"string\">&#x27;matching&#x27;</span></span><br><span class=\"line\">变更为 <span class=\"string\">&#x27;simple&#x27;</span>。若要不再显示本信息并保持传统习惯，进行如下设置：</span><br><span class=\"line\"></span><br><span class=\"line\">  git config --global push.default matching</span><br><span class=\"line\"></span><br><span class=\"line\">若要不再显示本信息并从现在开始采用新的使用习惯，设置：</span><br><span class=\"line\"></span><br><span class=\"line\">  git config --global push.default simple</span><br><span class=\"line\"></span><br><span class=\"line\">当 push.default 设置为 <span class=\"string\">&#x27;matching&#x27;</span> 后，git 将推送和远程同名的所有</span><br><span class=\"line\">本地分支。</span><br><span class=\"line\"></span><br><span class=\"line\">从 Git 2.0 开始，Git 默认采用更为保守的 <span class=\"string\">&#x27;simple&#x27;</span> 模式，只推送当前</span><br><span class=\"line\">分支到远程关联的同名分支，即 <span class=\"string\">&#x27;git push&#x27;</span> 推送当前分支。</span><br><span class=\"line\"></span><br><span class=\"line\">参见 <span class=\"string\">&#x27;git help config&#x27;</span> 并查找 <span class=\"string\">&#x27;push.default&#x27;</span> 以获取更多信息。</span><br><span class=\"line\">（<span class=\"string\">&#x27;simple&#x27;</span> 模式由 Git 1.7.11 版本引入。如果您有时要使用老版本的 Git，</span><br><span class=\"line\">为保持兼容，请用 <span class=\"string\">&#x27;current&#x27;</span> 代替 <span class=\"string\">&#x27;simple&#x27;</span>）</span><br><span class=\"line\"></span><br><span class=\"line\">Username <span class=\"keyword\">for</span> <span class=\"string\">&#x27;https://github.com&#x27;</span>: eustomaqua</span><br><span class=\"line\">Password <span class=\"keyword\">for</span> <span class=\"string\">&#x27;https://eustomaqua@github.com&#x27;</span>: </span><br><span class=\"line\">对象计数中: 13, 完成.</span><br><span class=\"line\">Delta compression using up to 2 threads.</span><br><span class=\"line\">压缩对象中: 100% (13/13), 完成.</span><br><span class=\"line\">写入对象中: 100% (13/13), 15.88 KiB | 0 bytes/s, 完成.</span><br><span class=\"line\">Total 13 (delta 8), reused 0 (delta 0)</span><br><span class=\"line\">remote: Resolving deltas: 100% (8/8), completed with 4 <span class=\"built_in\">local</span> objects.</span><br><span class=\"line\">To https://github.com/eustomaqua/eustomaqua.github.io.git</span><br><span class=\"line\">   480734a..10c854a  hexo-next -&gt; hexo-next</span><br><span class=\"line\">ubuntu@ubuntu-VirtualBox:~/eustomaqua.github.io$ </span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">ubuntu@ubuntu-VirtualBox:~/eustomaqua.github.io$ git config</span><br><span class=\"line\">用法：git config [&lt;选项&gt;]</span><br><span class=\"line\"></span><br><span class=\"line\">配置文件位置</span><br><span class=\"line\">    --global              使用全局配置文件</span><br><span class=\"line\">    --system              使用系统级配置文件</span><br><span class=\"line\">    --<span class=\"built_in\">local</span>               使用仓库级配置文件</span><br><span class=\"line\">    -f, --file &lt;文件&gt;     使用指定的配置文件</span><br><span class=\"line\">    --blob &lt;数据对象 ID&gt;  从给定的数据对象读取配置</span><br><span class=\"line\"></span><br><span class=\"line\">操作</span><br><span class=\"line\">    --get                 获取值：name [value-regex]</span><br><span class=\"line\">    --get-all             获得所有的值：key [value-regex]</span><br><span class=\"line\">    --get-regexp          根据正则表达式获得值：name-regex [value-regex]</span><br><span class=\"line\">    --get-urlmatch        获得 URL 取值：section[.var] URL</span><br><span class=\"line\">    --replace-all         替换所有匹配的变量：name value [value_regex]</span><br><span class=\"line\">    --add                 添加一个新的变量：name value</span><br><span class=\"line\">    --<span class=\"built_in\">unset</span>               删除一个变量：name [value-regex]</span><br><span class=\"line\">    --unset-all           删除所有匹配项：name [value-regex]</span><br><span class=\"line\">    --rename-section      重命名小节：old-name new-name</span><br><span class=\"line\">    --remove-section      删除一个小节：name</span><br><span class=\"line\">    -l, --list            列出所有</span><br><span class=\"line\">    -e, --edit            打开一个编辑器</span><br><span class=\"line\">    --get-color           获得配置的颜色：配置 [默认]</span><br><span class=\"line\">    --get-colorbool       获得颜色设置：配置 [stdout-is-tty]</span><br><span class=\"line\"></span><br><span class=\"line\">类型</span><br><span class=\"line\">    --bool                值是 <span class=\"string\">&quot;true&quot;</span> 或 <span class=\"string\">&quot;false&quot;</span></span><br><span class=\"line\">    --int                 值是十进制数</span><br><span class=\"line\">    --bool-or-int         值是 --bool or --int</span><br><span class=\"line\">    --path                值是一个路径（文件或目录名）</span><br><span class=\"line\"></span><br><span class=\"line\">其它</span><br><span class=\"line\">    -z, --null            终止值是 NUL 字节</span><br><span class=\"line\">    --name-only           只显示变量名</span><br><span class=\"line\">    --includes            查询时参照 include 指令递归查找</span><br><span class=\"line\"></span><br><span class=\"line\">ubuntu@ubuntu-VirtualBox:~/eustomaqua.github.io$ git config push.default</span><br><span class=\"line\">ubuntu@ubuntu-VirtualBox:~/eustomaqua.github.io$ </span><br><span class=\"line\">ubuntu@ubuntu-VirtualBox:~/eustomaqua.github.io$ git config --global push.default simple</span><br><span class=\"line\">ubuntu@ubuntu-VirtualBox:~/eustomaqua.github.io$ </span><br></pre></td></tr></table></figure>\n\n<p>post notes</p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br><span class=\"line\">39</span><br><span class=\"line\">40</span><br><span class=\"line\">41</span><br><span class=\"line\">42</span><br><span class=\"line\">43</span><br><span class=\"line\">44</span><br><span class=\"line\">45</span><br><span class=\"line\">46</span><br><span class=\"line\">47</span><br><span class=\"line\">48</span><br><span class=\"line\">49</span><br><span class=\"line\">50</span><br><span class=\"line\">51</span><br><span class=\"line\">52</span><br><span class=\"line\">53</span><br><span class=\"line\">54</span><br><span class=\"line\">55</span><br><span class=\"line\">56</span><br><span class=\"line\">57</span><br><span class=\"line\">58</span><br><span class=\"line\">59</span><br><span class=\"line\">60</span><br><span class=\"line\">61</span><br><span class=\"line\">62</span><br><span class=\"line\">63</span><br><span class=\"line\">64</span><br><span class=\"line\">65</span><br><span class=\"line\">66</span><br><span class=\"line\">67</span><br><span class=\"line\">68</span><br><span class=\"line\">69</span><br><span class=\"line\">70</span><br><span class=\"line\">71</span><br><span class=\"line\">72</span><br><span class=\"line\">73</span><br><span class=\"line\">74</span><br><span class=\"line\">75</span><br><span class=\"line\">76</span><br><span class=\"line\">77</span><br><span class=\"line\">78</span><br><span class=\"line\">79</span><br><span class=\"line\">80</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">ubuntu@ubuntu-VirtualBox:~/eustomaqua.github.io$ hexo g</span><br><span class=\"line\">Usage: hexo &lt;<span class=\"built_in\">command</span>&gt;</span><br><span class=\"line\"></span><br><span class=\"line\">Commands:</span><br><span class=\"line\">  <span class=\"built_in\">help</span>     Get <span class=\"built_in\">help</span> on a <span class=\"built_in\">command</span>.</span><br><span class=\"line\">  init     Create a new Hexo folder.</span><br><span class=\"line\">  version  Display version information.</span><br><span class=\"line\"></span><br><span class=\"line\">Global Options:</span><br><span class=\"line\">  --config  Specify config file instead of using _config.yml</span><br><span class=\"line\">  --cwd     Specify the CWD</span><br><span class=\"line\">  --debug   Display all verbose messages <span class=\"keyword\">in</span> the terminal</span><br><span class=\"line\">  --draft   Display draft posts</span><br><span class=\"line\">  --safe    Disable all plugins and scripts</span><br><span class=\"line\">  --silent  Hide output on console</span><br><span class=\"line\"></span><br><span class=\"line\">For more <span class=\"built_in\">help</span>, you can use <span class=\"string\">&#x27;hexo help [command]&#x27;</span> <span class=\"keyword\">for</span> the detailed information</span><br><span class=\"line\">or you can check the docs: http://hexo.io/docs/</span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">ubuntu@ubuntu-VirtualBox:~/eustomaqua.github.io$ <span class=\"built_in\">ls</span></span><br><span class=\"line\">hexo-next  README.md</span><br><span class=\"line\">ubuntu@ubuntu-VirtualBox:~/eustomaqua.github.io$ <span class=\"built_in\">cd</span> hexo-next</span><br><span class=\"line\">ubuntu@ubuntu-VirtualBox:~/eustomaqua.github.io/hexo-next$ hexo g  <span class=\"comment\"># 生成</span></span><br><span class=\"line\">INFO  Start processing</span><br><span class=\"line\">INFO  Files loaded <span class=\"keyword\">in</span> 3.29 s</span><br><span class=\"line\">INFO  Generated: search.xml</span><br><span class=\"line\">INFO  Generated: categories/index.html</span><br><span class=\"line\">INFO  Generated: ....</span><br><span class=\"line\">INFO  114 files generated <span class=\"keyword\">in</span> 5.96 s</span><br><span class=\"line\">ubuntu@ubuntu-VirtualBox:~/eustomaqua.github.io/hexo-next$ hexo s  <span class=\"comment\"># 本地预览</span></span><br><span class=\"line\">INFO  Start processing</span><br><span class=\"line\">INFO  Hexo is running at http://localhost:4000/. Press Ctrl+C to stop.</span><br><span class=\"line\">^CINFO  Farewell</span><br><span class=\"line\">ubuntu@ubuntu-VirtualBox:~/eustomaqua.github.io/hexo-next$ hexo d  <span class=\"comment\"># 发布</span></span><br><span class=\"line\"></span><br><span class=\"line\">ubuntu@ubuntu-VirtualBox:~/eustomaqua.github.io/hexo-next$ hexo g</span><br><span class=\"line\">INFO  Start processing</span><br><span class=\"line\">INFO  Files loaded <span class=\"keyword\">in</span> 5.74 s</span><br><span class=\"line\">INFO  Generated: 2020/2020-02-08-Setup-Python-on-Linux/index.html</span><br><span class=\"line\">INFO  Generated: search.xml</span><br><span class=\"line\">INFO  Generated: index.html</span><br><span class=\"line\">INFO  3 files generated <span class=\"keyword\">in</span> 9.83 s</span><br><span class=\"line\">ubuntu@ubuntu-VirtualBox:~/eustomaqua.github.io/hexo-next$ </span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\"></span><br><span class=\"line\">ubuntu@ubuntu-VirtualBox:~/eustomaqua.github.io$ git add .</span><br><span class=\"line\">ubuntu@ubuntu-VirtualBox:~/eustomaqua.github.io$ git commit -m <span class=\"string\">&quot;backup history&quot;</span></span><br><span class=\"line\">[hexo-next 2b17507] backup <span class=\"built_in\">history</span></span><br><span class=\"line\"> 1 file changed, 51 insertions(+)</span><br><span class=\"line\">ubuntu@ubuntu-VirtualBox:~/eustomaqua.github.io$ <span class=\"built_in\">cd</span> hex*</span><br><span class=\"line\">ubuntu@ubuntu-VirtualBox:~/eustomaqua.github.io/hexo-next$ <span class=\"built_in\">ls</span></span><br><span class=\"line\">_config.yml  debug.log     package.json       public     <span class=\"built_in\">source</span></span><br><span class=\"line\">db.json      node_modules  package-lock.json  scaffolds  themes</span><br><span class=\"line\">ubuntu@ubuntu-VirtualBox:~/eustomaqua.github.io/hexo-next$ hexo g</span><br><span class=\"line\">INFO  Start processing</span><br><span class=\"line\">INFO  Files loaded <span class=\"keyword\">in</span> 2.62 s</span><br><span class=\"line\">INFO  Generated: search.xml</span><br><span class=\"line\">INFO  Generated: 2020/2020-02-08-Setup-Python-on-Linux/index.html</span><br><span class=\"line\">INFO  Generated: index.html</span><br><span class=\"line\">INFO  3 files generated <span class=\"keyword\">in</span> 6.39 s</span><br><span class=\"line\">ubuntu@ubuntu-VirtualBox:~/eustomaqua.github.io/hexo-next$ hexo d</span><br><span class=\"line\">INFO  Deploying: git</span><br><span class=\"line\">INFO  Clearing .deploy_git folder...</span><br><span class=\"line\">INFO  Copying files from public folder...</span><br><span class=\"line\">INFO  Copying files from extend <span class=\"built_in\">dirs</span>...</span><br><span class=\"line\">[master c64205a] updated on Sat, 02/08/2020</span><br><span class=\"line\"> 36 files changed, 3796 insertions(+), 79 deletions(-)</span><br><span class=\"line\"> create mode 100644 2020/2020-02-08-Setup-Python-on-Linux/index.html</span><br><span class=\"line\"> create mode 100644 archives/2020/02/index.html</span><br><span class=\"line\"> create mode 100644 archives/2020/index.html</span><br><span class=\"line\">Username <span class=\"keyword\">for</span> <span class=\"string\">&#x27;https://github.com&#x27;</span>: eustomaqua</span><br><span class=\"line\">Password <span class=\"keyword\">for</span> <span class=\"string\">&#x27;https://eustomaqua@github.com&#x27;</span>: </span><br><span class=\"line\">To https://github.com/eustomaqua/eustomaqua.github.io.git</span><br><span class=\"line\">   df22d0c..c64205a  HEAD -&gt; master</span><br><span class=\"line\">分支 master 设置为跟踪来自 https://github.com/eustomaqua/eustomaqua.github.io.git 的远程分支 master。</span><br><span class=\"line\">INFO  Deploy <span class=\"keyword\">done</span>: git</span><br><span class=\"line\">ubuntu@ubuntu-VirtualBox:~/eustomaqua.github.io/hexo-next$ </span><br></pre></td></tr></table></figure>\n\n<p>clean</p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">ubuntu@ubuntu-VirtualBox:~/eustomaqua.github.io/hexo-next$ hexo clean</span><br><span class=\"line\">INFO  Deleted database.</span><br><span class=\"line\">INFO  Deleted public folder.</span><br><span class=\"line\">ubuntu@ubuntu-VirtualBox:~/eustomaqua.github.io/hexo-next$</span><br></pre></td></tr></table></figure>\n\n","categories":["Records"],"tags":["Configuration","Linux"]},{"title":"Kindle 跌过的坑要反复地爬 T_T","url":"https://eustomaqua.github.io/2019/2019-07-20-Kindle-SignIn-WordWise/","content":"<link rel=\"stylesheet\" class=\"aplayer-secondary-style-marker\" href=\"/assets/css/APlayer.min.css\"><script src=\"/assets/js/APlayer.min.js\" class=\"aplayer-secondary-script-marker\"></script><!--\ncategories - 此去经年\n\n2021/1/15 14:36 Fri\nProductivity\n-->\n\n\n\n<p>美亚买了一个 Kindle 新出的 pw4 ，本来很是欢喜，结果好景不长，手贱换了一下中亚账号……于是，凉了……</p>\n<p>问题一开始无法再登录美亚账号，开手机热点翻了一下能登了，但是 Word Wise 不正常了。错误情况有两种：一种是右下角根本不提示 Word Wise，变成了 Location 的百分比；另一种是一直在 “Downloading Word Wise…” &#x2F; “Downloading Paused” 中切换，间或出现 “Word Wise”，看似正常，实际上根本没下载下来。<br>中间 restart, deregister 数次无果，reset 了</p>\n<p>登录账号时候，美亚每次都要验证 code，一开始貌似没有 <a href=\"http://www.amazon.com/code\">www.amazon.com/code</a> 这个，如果用 amazon.cn 验证就是中亚了，所以翻了一下试试，结果成功了。第一次换中亚也有 code 验证。不过目前为止最后一次中亚 (即测试 Word Wise 是否正常) 不用 code 验证了，美亚最后一次没翻，也是 amazon.com 验证的 code，均登录成功。</p>\n<p>期间 Amazon Customer Service 提供的解决方案包括：  </p>\n<ol>\n<li>replace the device using a prepaid return label，但是他们无法寄到美国外的地址，失败</li>\n<li>update the software version (current 5.11.1)<br>  a. Home -&gt; Setting -&gt; Device Info 无更新选项，失败<br>  b. 只能手动更新，下载固件，按网站提示进行<br>  c. 更新完，原问题没解决</li>\n<li>word wise only works for English books (符合)</li>\n<li>power cycle the wifi modem (我换过三四个不同的 wifi，问题仍存在)</li>\n<li>try using a phone hotspot (翻不翻都一样结果，没用)</li>\n<li>最终结果是没解决</li>\n</ol>\n<p>后来在中亚测试一下 Word Wise 是否正常，中亚是正常的，而且十分快，我根本没看到 download 的提示 (不过我记得刚买到手的时候 Word Wise 的确有 download 提示，不过很快就下完了，印象中当时似乎没有下载词典，貌似没有主动去下载，不过词典不太记得了)。<br>于是再次换回美亚，仍是同样的问题。猜测难道服务器在国外，连接太慢所以下载不下来？</p>\n<p>再试一下下个词典试试 Word Wise，仍然是 “Downloading Word Wise…”<br>这个问题此前试过翻，无法解决……<br>难道必须在当地才能用？主要是网速下载连接得上的问题？<br>这也太惨了， 回国之后才发现幺蛾子都冒出来了，suddenlink 就坑了我一回，坑了我六十多刀都快三个月了还不还我，看来是不打算还了，这钱扔给 suddenlink 还不如续一年 student prime 呢，那个好歹还能看看 prime reading prime video [气愤ing]</p>\n<p>总之，中亚美亚切换可以按照网上说的，一个邮箱不同密码区分 (最后可以不用翻)；但是 Word Wise 我就不知道啥时候、怎么能解决了……<br>另外中亚美亚我一个粗略的印象是，美亚书多，而且词典也多 (中亚 dictionaries 11, 美亚 dictionaries 46, 我最后一次试完中亚 word wise 后美亚莫名变成了 47)；至于那个蓝牙听书功能，我还没能成功把 kindle 连上手机来播放，不过手机 kindle app 可以直接播放，如果只下载了 Audible 就会比正常书籍略矮胖些，点开音频右下角有个 Reading 可以下载书籍，下载时看到是两本，不过下完两个就会合成一个，显示是正常书籍大小高度 ；此外美亚还有个 Goodreads 可以连起来存储书籍的状态等，相当于豆瓣书的标记功能，基本上可以看作是豆瓣吧，我觉得这个还是挺方便的，可以区分在读和读过，还有一个小 bonus 就是可以在 Goodreads 直接看自己的笔记 (可惜中亚没这个功能，太可惜了)，中亚上面缺了个 goodreads 就缺了一块，强迫症看着好难受，而且强迫症看着没有 word wise 的那么密集的文字也难受…… 所以才折腾 word wise，不幸地失败了，这是一个悲伤的故事</p>\n<p>注：我后来再登录中亚的时候，并没有下载字典，发现 Word Wise 也可以正常用 (好像也没有 download)，说明 Word Wise 的确不需要下载字典，不知道美亚的 Word Wise 出了什么毛病</p>\n<p><strong>UPDATE</strong><br>我以前总是觉得 Kindle Oasis 很丑，又不对称，拿着并不舒适，直到我在深圳机场看到了实体……是正方形的，所以看起来比 pw4 还要小巧，带壳拿起来也并不觉得不对称或者奇怪什么的，然后当时我就觉得“哇，并不像我想象的那么差吗，反而还更好些呢”，然后我就兴奋而激动地拿着翻了几页，有一种当初在实体店里看到 pw4 的喜悦感（后来每次我和室友逛 Target 我都要去看一眼……），有点后悔当时也许可以选个 Oasis 来买的，毕竟它的性价比幅度可是大大超过了 pw4……。后来我查了下资料，意识到那是 Oasis 1代，从2代开始屏幕就更大了，可能就不是我想要的了，因为我不是很喜欢大屏，6寸的小屏刚好，7寸总觉得略大</p>\n","categories":["Efficiency"],"tags":["Kindle"]},{"title":"远程服务器与本地机的使用 (Ubuntu 16.04)","url":"https://eustomaqua.github.io/2019/2019-06-09-Server-Local-Ubuntu/","content":"<link rel=\"stylesheet\" class=\"aplayer-secondary-style-marker\" href=\"/assets/css/APlayer.min.css\"><script src=\"/assets/js/APlayer.min.js\" class=\"aplayer-secondary-script-marker\"></script><!--\ndate: 2019-06-09 23:02:59\nupdated: \n\nModified: 24 Mar 2020 10:05:57\nConfigure: 4 Dec 2021 15:22:08\n-->\n\n\n<h1 id=\"Server\"><a href=\"#Server\" class=\"headerlink\" title=\"Server\"></a>Server</h1><p>前提条件： </p>\n<ol>\n<li>无 root 权限</li>\n<li>Ubuntu 16.04</li>\n<li>CUDA 9.0 (not necessary)</li>\n</ol>\n<h2 id=\"非-root-用户安装-cuda-cudnn\"><a href=\"#非-root-用户安装-cuda-cudnn\" class=\"headerlink\" title=\"非 root 用户安装 cuda, cudnn\"></a>非 root 用户安装 cuda, cudnn</h2><h3 id=\"1-下载安装-cuda\"><a href=\"#1-下载安装-cuda\" class=\"headerlink\" title=\"1. 下载安装 cuda\"></a>1. 下载安装 cuda</h3><ul>\n<li>下载 TensorFlow 对应版本的 CUDA <a href=\"https://developer.nvidia.com/cuda-downloads\">https://developer.nvidia.com/cuda-downloads</a> </li>\n<li>选择 linux 及对应系统之后，选择 runfile(local) 下载，<em>即 &#96;&#96;linux -&gt; x86_64 -&gt; Ubuntu -&gt; 16.04 -&gt; runfile (local)’’</em></li>\n<li>给文件运行权限 <strong>chmod +x filename.run</strong> 然后运行 <strong>.&#x2F;filename.run</strong></li>\n<li>在协议中选择同意 (accept)，不安装 driver installation (no)，然后在安装 cuda 时选择个人用户的家目录，如 <strong>&#x2F;home&#x2F;yourname&#x2F;cuda90</strong>，link 选择 no，samples 自己设定 (yes or no) 及安装目录，sudo 选择 no</li>\n<li>修改个人用户的环境变量，环境变量文件 <strong>~&#x2F;.bashrc</strong> 位于家目录，即 <strong>&#x2F;home&#x2F;yourname&#x2F;.bashrc</strong> (可用 <strong>vim ~&#x2F;.bashrc</strong> 编辑)，末尾添加如下语句  ；修改之后需 <strong>source ~&#x2F;.bashrc</strong> 使环境变量生效，或另开终端<figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">export PATH=$HOME/VirtualEnv/cuda90/bin:$PATH</span><br><span class=\"line\">export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/VirtualEnv/cuda90/lib64/</span><br></pre></td></tr></table></figure></li>\n</ul>\n<h3 id=\"2-查看-cuda-安装状态\"><a href=\"#2-查看-cuda-安装状态\" class=\"headerlink\" title=\"2. 查看 cuda 安装状态\"></a>2. 查看 cuda 安装状态</h3><ul>\n<li><strong>nvidia-smi</strong> 查看显卡驱动运行状态</li>\n<li><strong>nvcc -V</strong> 查看 cuda-toolkit 安装是否成功</li>\n</ul>\n<h3 id=\"3-安装-cudnn\"><a href=\"#3-安装-cudnn\" class=\"headerlink\" title=\"3. 安装 cudnn\"></a>3. 安装 cudnn</h3><ul>\n<li>cudnn 的安装，官网下载 <a href=\"https://developer.nvidia.com/cudnn\">https://developer.nvidia.com/cudnn</a> (需注册账号)，解压到 cuda 所在的文件夹，<strong>tar -xzvf cuda-9.0-linux-x64-v7.4.2.24.tgz</strong> (输入自己下载的安装包名)</li>\n<li>拷贝过去 cudnn -&gt; cuda (cuda90 是个人用户家目录下的 &#x2F;home&#x2F;yourname&#x2F;VirtualEnv&#x2F;cuda90 )，注意路径正确<br><strong>cp cuda&#x2F;include&#x2F;cudnn.h ~&#x2F;VirtualEnv&#x2F;cuda90&#x2F;include&#x2F;</strong><br><em><em>cp cuda&#x2F;lib64&#x2F;libcudnn</em> ~&#x2F;VirtualEnv&#x2F;cuda90&#x2F;lib64</em>*<br>*<em>chmod a+r ~&#x2F;VirtualEnv&#x2F;cuda90&#x2F;include&#x2F;cudnn.h ~&#x2F;VirtualEnv&#x2F;cuda90&#x2F;lib64&#x2F;libcudnn</em> **</li>\n</ul>\n<h3 id=\"4-查看-cudnn-安装状态\"><a href=\"#4-查看-cudnn-安装状态\" class=\"headerlink\" title=\"4. 查看 cudnn 安装状态\"></a>4. 查看 cudnn 安装状态</h3><p><strong>cat ~&#x2F;VirtualEnv&#x2F;cuda90&#x2F;include&#x2F;cudnn.h | grep CUDNN_MAJOR -A5</strong><br>显示</p>\n<figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">$ cat ~/VirtualEnv/cuda90/include/cudnn.h | grep CUDNN_MAJOR -A5</span><br><span class=\"line\"><span class=\"comment\">#define CUDNN_MAJOR 7</span></span><br><span class=\"line\"><span class=\"comment\">#define CUDNN_MINOR 4</span></span><br><span class=\"line\"><span class=\"comment\">#define CUDNN_PATCHLEVEL 2</span></span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\">#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)</span></span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\">#include &quot;driver_types.h&quot;</span></span><br><span class=\"line\"><span class=\"comment\">#include &lt;cuda_runtime.h&gt;</span></span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\">#ifndef CUDNNWINAPI</span></span><br></pre></td></tr></table></figure>\n<p>则 cudnn 版本为 7.4.2<br>然后就可以安装自己想要安装的框架了</p>\n<p>后续：编译框架的时候提示无 lcuda.so 动态库<br>解决办法：在 &#x2F;usr&#x2F;lib64&#x2F;nvidia 中有，创建软链接到自己的安装 cuda 的目录 &#x2F;home&#x2F;liuao&#x2F;cuda91&#x2F;lib64 (i.e., &#x2F;home&#x2F;username&#x2F;VirtualEnv&#x2F;cuda90&#x2F;lib64) 即可。</p>\n<h3 id=\"安装过程-所用到的命令\"><a href=\"#安装过程-所用到的命令\" class=\"headerlink\" title=\"* 安装过程 (所用到的命令)\"></a>* 安装过程 (所用到的命令)</h3><figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"meta prompt_\"># </span><span class=\"language-bash\">install cuda</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">cd</span> ~/VirtualEnv</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">chmod</span> +x cuda_9.0.176_384.81_linux.run</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">./cuda_9.0.176_384.81_linux.run</span></span><br><span class=\"line\">[EULA] accept</span><br><span class=\"line\">[install Driver] no</span><br><span class=\"line\">[install CUDA 9.0 Toolkit] yes</span><br><span class=\"line\">[Toolkit location] /home/yourname/VirtualEnv/cuda90</span><br><span class=\"line\">[symbolic link at /usr/local/cuda] no</span><br><span class=\"line\">[install CUDA 9.0 Samples] yes</span><br><span class=\"line\">[Samples location] /home/yourname/VirtualEnv/cudasamples</span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">nvidia-smi</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">nvcc -V</span></span><br><span class=\"line\">nvcc: NVIDIA (R) Cuda compiler driver</span><br><span class=\"line\">Copyright (c) 2005-2017 NVIDIA Corporation</span><br><span class=\"line\">Built on Fri_Sep__1_21:08:03_CDT_2017</span><br><span class=\"line\">Cuda compilation tools, release 9.0, V9.0.176</span><br><span class=\"line\"><span class=\"meta prompt_\">#</span><span class=\"language-bash\"></span></span><br><span class=\"line\"><span class=\"language-bash\"><span class=\"comment\"># install cudnn</span></span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">cd</span> ~/VirtualEnv</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">tar -xzvf cudnn-9.0-linux-x64-v7.4.2.24.tgz</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">cp</span> cuda/include/cudnn.h ~/VirtualEnv/cuda90/include/</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">ls</span> cuda/lib64</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">cp</span> cuda/lib64/libcudnn* ~/VirtualEnv/cuda90/lib64/</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">chmod</span> a+r ~/VirtualEnv/cuda90/include/cudnn.h ~/VirtualEnv/cuda90/lib64/libcudnn*</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">cat</span> ~/VirtualEnv/cuda90/include/cudnn.h | grep CUDNN_MAJOR -A5</span></span><br><span class=\"line\"><span class=\"meta prompt_\">#</span><span class=\"language-bash\">define CUDNN_MAJOR 7</span></span><br><span class=\"line\"><span class=\"meta prompt_\">#</span><span class=\"language-bash\">define CUDNN_MINOR 4</span></span><br><span class=\"line\"><span class=\"meta prompt_\">#</span><span class=\"language-bash\">define CUDNN_PATCHLEVEL 2</span></span><br><span class=\"line\"><span class=\"meta prompt_\"></span></span><br><span class=\"line\"><span class=\"meta prompt_\">#</span><span class=\"language-bash\">define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)</span></span><br><span class=\"line\"><span class=\"meta prompt_\"></span></span><br><span class=\"line\"><span class=\"meta prompt_\">#</span><span class=\"language-bash\">include <span class=\"string\">&quot;driver_types.h&quot;</span></span></span><br><span class=\"line\"><span class=\"meta prompt_\">#</span><span class=\"language-bash\">include &lt;cuda_runtime.h&gt;</span></span><br><span class=\"line\"><span class=\"meta prompt_\"></span></span><br><span class=\"line\"><span class=\"meta prompt_\">#</span><span class=\"language-bash\">ifndef CUDNNWINAPI</span></span><br></pre></td></tr></table></figure>\n\n\n<h2 id=\"非-root-用户安装自己的-Python\"><a href=\"#非-root-用户安装自己的-Python\" class=\"headerlink\" title=\"非 root 用户安装自己的 Python\"></a>非 root 用户安装自己的 Python</h2><p>我的习惯是  </p>\n<ul>\n<li>virtualenv 创建的虚拟环境都放在 <strong>VirtualEnv</strong> 文件夹下，命名格式 e.g., <strong>py36env</strong>, <strong>py35gnn</strong>, etc </li>\n<li>家目录安装的不同版本 Python 都放在 <strong>software</strong> 文件夹下 (同时存放软件下载包)，命名格式 e.g., <strong>python27</strong>, etc</li>\n</ul>\n<figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">mkdir</span> software</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">cd</span> software</span></span><br><span class=\"line\"><span class=\"meta prompt_\"># </span><span class=\"language-bash\"></span></span><br><span class=\"line\"><span class=\"language-bash\"><span class=\"comment\"># install Python</span></span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">tar -zxvf Python-3.6.1.tgz</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">cd</span> Python-3.6.1</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">./configure --prefix=/home/userrname/software/python36</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">make -j</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">make install</span></span><br><span class=\"line\"><span class=\"meta prompt_\"># </span><span class=\"language-bash\">or: make -j &amp;&amp; make install</span></span><br><span class=\"line\"><span class=\"meta prompt_\"># </span><span class=\"language-bash\">注意如果 make &amp;&amp; make install 会失败，应该是权限问题</span></span><br><span class=\"line\"><span class=\"meta prompt_\"># </span><span class=\"language-bash\"></span></span><br><span class=\"line\"><span class=\"language-bash\"><span class=\"comment\"># pip3 install package</span></span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">cd</span> ../python36</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">bin/python3</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">bin/pip3 list</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">cd</span> bin</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">./pip3 install packagename</span></span><br></pre></td></tr></table></figure>\n\n\n<h2 id=\"非-root-用户安装-Python-包库\"><a href=\"#非-root-用户安装-Python-包库\" class=\"headerlink\" title=\"非 root 用户安装 Python 包库\"></a>非 root 用户安装 Python 包库</h2><p>两种方法：</p>\n<blockquote>\n<p>pip install –user package-name<br>virtualenv, virtualenvwrapper</p>\n</blockquote>\n<p>方法一的卸载，pip uninstall package-name 即可，会先卸载个人目录下的包。如果个人目录和系统目录有同名包，随后使用 sudo 卸载系统包即可。</p>\n<p>方法二更方便环境隔离，可以自行配置多个环境。</p>\n<p>方法三是用 docker，暂未尝试。</p>\n<p>非 root 用户在服务器上配置自己的环境，使用 pip install –user package 设置自己的虚拟环境</p>\n<figure class=\"highlight perl\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">$ pip install --user virtualenv virtualwrapper</span><br><span class=\"line\"><span class=\"comment\">#</span></span><br><span class=\"line\"><span class=\"comment\"># create virtual environment (not necessary)</span></span><br><span class=\"line\">$ cd ~</span><br><span class=\"line\">$ <span class=\"keyword\">mkdir</span> VirtualEnv</span><br><span class=\"line\">$ cd VirtualEnv</span><br><span class=\"line\">$ virtualenv py36env --python=<span class=\"regexp\">/usr/</span>bin/python3.<span class=\"number\">6</span></span><br><span class=\"line\">$ source py36env/bin/activate</span><br><span class=\"line\">$ pip list</span><br><span class=\"line\">$ pip install packagename....</span><br><span class=\"line\">$ deactivate</span><br></pre></td></tr></table></figure>\n\n\n<h1 id=\"Remote-Local-Server\"><a href=\"#Remote-Local-Server\" class=\"headerlink\" title=\"Remote (Local - Server)\"></a>Remote (Local - Server)</h1><h2 id=\"TensorBoard-远程访问\"><a href=\"#TensorBoard-远程访问\" class=\"headerlink\" title=\"TensorBoard 远程访问\"></a>TensorBoard 远程访问</h2><h3 id=\"远程连接\"><a href=\"#远程连接\" class=\"headerlink\" title=\"远程连接\"></a>远程连接</h3><p>在本地&#x2F;虚拟机 (Ubuntu 16.04) 中 </p>\n<ol>\n<li>终端 <figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">ssh -L 16006:127.0.0.1:6006 yourname@server.address</span><br></pre></td></tr></table></figure>\n  其中 16006:127.0.0.1 代表自己机器上的 16006 号端口，6006 是服务器上 TensorBoard 使用的端口</li>\n<li>在浏览器中打开 <a href=\"http://127.0.0.1:16006/\">http://127.0.0.1:16006</a></li>\n<li>服务器上 ctrl+c 关闭后，本地即无法连接</li>\n<li>本地终端 exit<figure class=\"highlight powershell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">ubuntu@VirtualBox:~<span class=\"variable\">$</span> ssh <span class=\"literal\">-L</span> <span class=\"number\">16006</span>:<span class=\"number\">127.0</span>.<span class=\"number\">0.1</span>:<span class=\"number\">6006</span> yourname@server.address</span><br><span class=\"line\">yourname@server.address<span class=\"string\">&#x27;s password: </span></span><br><span class=\"line\"><span class=\"string\">Welcome to Ubuntu 16.04.5 LTS (GNU/Linux 4.4.0-141-generic x86_64)</span></span><br><span class=\"line\"><span class=\"string\"></span></span><br><span class=\"line\"><span class=\"string\"> * Documentation:  https://help.ubuntu.com</span></span><br><span class=\"line\"><span class=\"string\"> * Management:     https://landscape.canonical.com</span></span><br><span class=\"line\"><span class=\"string\"> * Support:        https://ubuntu.com/advantage</span></span><br><span class=\"line\"><span class=\"string\"></span></span><br><span class=\"line\"><span class=\"string\">79 packages can be updated.</span></span><br><span class=\"line\"><span class=\"string\">4 updates are security updates.</span></span><br><span class=\"line\"><span class=\"string\"></span></span><br><span class=\"line\"><span class=\"string\">New release &#x27;</span><span class=\"number\">18.04</span>.<span class=\"number\">1</span> LTS<span class=\"string\">&#x27; available.</span></span><br><span class=\"line\"><span class=\"string\">Run &#x27;</span><span class=\"keyword\">do</span><span class=\"literal\">-release-upgrade</span><span class=\"string\">&#x27; to upgrade to it.</span></span><br><span class=\"line\"><span class=\"string\"></span></span><br><span class=\"line\"><span class=\"string\"></span></span><br><span class=\"line\"><span class=\"string\">*** System restart required ***</span></span><br><span class=\"line\"><span class=\"string\">Last login: Thu Feb  7 15:46:49 2019 from 10.231.238.49</span></span><br><span class=\"line\"><span class=\"string\">yourname@server.address:~$ exit</span></span><br><span class=\"line\"><span class=\"string\">logout</span></span><br><span class=\"line\"><span class=\"string\">Connection to server.address closed.</span></span><br><span class=\"line\"><span class=\"string\">ubuntu@VirtualBox:~$ </span></span><br></pre></td></tr></table></figure></li>\n</ol>\n<h3 id=\"使用\"><a href=\"#使用\" class=\"headerlink\" title=\"使用\"></a>使用</h3><p>Usage: <code>$ tensorboard --logdir=folder_path</code></p>\n<ol>\n<li>between Local Steps 1 &amp; 2</li>\n<li>在服务器上开启 TensorBoard  <figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">tensorboard --logdir=./network</span><br></pre></td></tr></table></figure></li>\n</ol>\n<p>e.g.,</p>\n<figure class=\"highlight powershell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">ubuntu@VirtualBox:~<span class=\"variable\">$</span> ssh <span class=\"literal\">-L</span> <span class=\"number\">16006</span>:<span class=\"number\">127.0</span>.<span class=\"number\">0.1</span>:<span class=\"number\">6006</span> yourname@server.address</span><br><span class=\"line\">yourname@server.address<span class=\"string\">&#x27;s password: </span></span><br><span class=\"line\"><span class=\"string\">Last login: Wed Feb 27 11:08:00 2019 from 10.230.167.212</span></span><br><span class=\"line\"><span class=\"string\">yourname@server.address:~$ source VirtualEnv/py35env/bin/activate</span></span><br><span class=\"line\"><span class=\"string\">(py35env) yourname@server.address:~$ cd yourfolder</span></span><br><span class=\"line\"><span class=\"string\">(py35env) yourname@server.address:~/yourfolder$ ls</span></span><br><span class=\"line\"><span class=\"string\">(py35env) yourname@server.address:~/yourfolder$ tensorboard --logdir=folder_of_your_model</span></span><br><span class=\"line\"><span class=\"string\">W0227 12:16:59.123035 Reloader tf_logging.py:120] Found more than one graph event per run, or there was a metagraph containing a graph_def, as well as one or more graph events.  Overwriting the graph with the newest event.</span></span><br><span class=\"line\"><span class=\"string\">TensorBoard 1.12.1 at http://yourserver:6006 (Press CTRL+C to quit)</span></span><br><span class=\"line\"><span class=\"string\">^C(py35env) yourname@server.address:~/yourfolder$ </span></span><br></pre></td></tr></table></figure>\n\n\n<h2 id=\"Jupyter-notebook-远程访问\"><a href=\"#Jupyter-notebook-远程访问\" class=\"headerlink\" title=\"Jupyter notebook 远程访问\"></a>Jupyter notebook 远程访问</h2><p>仍以非 root 用户身份安装</p>\n<p>1, 安装步骤<br>(1) 登录服务器  </p>\n<figure class=\"highlight perl\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">~$ source ~<span class=\"regexp\">/VirtualEnv/p</span>y36env/bin/activate</span><br><span class=\"line\">(py36env) ~$ jupyter notebook</span><br><span class=\"line\">jupyter: command <span class=\"keyword\">not</span> found</span><br></pre></td></tr></table></figure>\n<p>(2) 检查是否有安装 jupyter notebook<br>终端输入 jupyter nootbook ，如果报错就是没有安装，用下列命令安装</p>\n<figure class=\"highlight perl\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">(py36env) ~$ <span class=\"comment\">#pip install pyzmq tornado jinja2 jsonschema</span></span><br><span class=\"line\">(py36env) ~$ pip install jupyter</span><br></pre></td></tr></table></figure>\n<p>(3) 生成配置文件</p>\n<figure class=\"highlight perl\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">(py36env) ~$ jupyter notebook --generate-config</span><br><span class=\"line\">Writing default config to: <span class=\"regexp\">/home/us</span>ername/.jupyter/jupyter_notebook_config.py</span><br></pre></td></tr></table></figure>\n<p>(4) 生成密码 （后续写配置文件、登录 Jupyter notebook 时需要）<br>打开Python终端，我输入的密码是 1234</p>\n<figure class=\"highlight perl\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">(py36env) ~$ python</span><br><span class=\"line\">Python <span class=\"number\">3.6</span>.<span class=\"number\">7</span> (default, Oct <span class=\"number\">21</span> <span class=\"number\">2018</span>, <span class=\"number\">04</span>:<span class=\"number\">56</span>:<span class=\"number\">05</span>)</span><br><span class=\"line\">[GCC <span class=\"number\">5.4</span>.<span class=\"number\">0</span> <span class=\"number\">20160609</span>] on linux</span><br><span class=\"line\">Type <span class=\"string\">&quot;help&quot;</span>, <span class=\"string\">&quot;copyright&quot;</span>, <span class=\"string\">&quot;credits&quot;</span> <span class=\"keyword\">or</span> <span class=\"string\">&quot;license&quot;</span> <span class=\"keyword\">for</span> more information.</span><br><span class=\"line\">&gt;&gt;&gt; from IPython.lib import passwd</span><br><span class=\"line\">&gt;&gt;&gt; passwd()</span><br><span class=\"line\">Enter password:</span><br><span class=\"line\">Verify password:</span><br><span class=\"line\"><span class=\"string\">&#x27;sha1:afc40e4de2b5:69f901707c23fde938709612d49424fab065c3b1&#x27;</span></span><br><span class=\"line\">&gt;&gt;&gt;</span><br><span class=\"line\">[<span class=\"number\">12</span>]+  Stopped                 python</span><br></pre></td></tr></table></figure>\n<p>(5) 修改默认配置文件</p>\n<figure class=\"highlight perl\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">(py36env) ~$ vim ~<span class=\"regexp\">/.jupyter/</span>jupyter_notebook_config.py</span><br></pre></td></tr></table></figure>\n<p>进行如下修改（这里可以自行配置）：</p>\n<figure class=\"highlight vim\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"keyword\">c</span>.NotebookApp.ip = <span class=\"string\">&#x27;*&#x27;</span>  #允许所有ip访问</span><br><span class=\"line\"><span class=\"keyword\">c</span>.NotebookApp.password = <span class=\"keyword\">u</span><span class=\"string\">&#x27;sha1:afc40e4de2b5:69f901707c23fde938709612d49424fab065c3b1&#x27;</span>  #刚才复制的那个密文</span><br><span class=\"line\"><span class=\"keyword\">c</span>.NotebookApp.open_browser = False</span><br><span class=\"line\"><span class=\"keyword\">c</span>.NotebookApp.port = <span class=\"number\">8888</span>  #随便指定一个端口</span><br><span class=\"line\"><span class=\"keyword\">c</span>.IPKernelApp.pylab = <span class=\"string\">&#x27;inline&#x27;</span></span><br></pre></td></tr></table></figure>\n\n<p>(6) 启动 Jupyter notebook</p>\n<figure class=\"highlight perl\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">(py36env) ~$ jupyter notebook</span><br><span class=\"line\">[I <span class=\"number\">12</span>:<span class=\"number\">16</span>:<span class=\"number\">27.663</span> NotebookApp] Serving notebooks from <span class=\"keyword\">local</span> directory: <span class=\"regexp\">/home/us</span>ername</span><br><span class=\"line\">[I <span class=\"number\">12</span>:<span class=\"number\">16</span>:<span class=\"number\">27.663</span> NotebookApp] The Jupyter Notebook is running at:</span><br><span class=\"line\">[I <span class=\"number\">12</span>:<span class=\"number\">16</span>:<span class=\"number\">27.664</span> NotebookApp] http:<span class=\"regexp\">//s</span>erver.address:<span class=\"number\">8888</span>/</span><br><span class=\"line\">[I <span class=\"number\">12</span>:<span class=\"number\">16</span>:<span class=\"number\">27.664</span> NotebookApp] Use Control-C to stop this server <span class=\"keyword\">and</span> shut down all kernels (twice to skip confirmation).</span><br><span class=\"line\">^C[I <span class=\"number\">12</span>:<span class=\"number\">23</span>:<span class=\"number\">05</span><span class=\"number\">.617</span> NotebookApp] interrupted</span><br><span class=\"line\">Serving notebooks from <span class=\"keyword\">local</span> directory: <span class=\"regexp\">/home/us</span>ername</span><br><span class=\"line\"><span class=\"number\">0</span> active kernels</span><br><span class=\"line\">The Jupyter Notebook is running at:</span><br><span class=\"line\">http:<span class=\"regexp\">//us</span>ername:<span class=\"number\">8888</span>/</span><br><span class=\"line\">Shutdown this notebook server (<span class=\"keyword\">y</span>/[n])? <span class=\"keyword\">y</span></span><br><span class=\"line\">[C <span class=\"number\">12</span>:<span class=\"number\">23</span>:08<span class=\"number\">.408</span> NotebookApp] Shutdown confirmed</span><br><span class=\"line\">[I <span class=\"number\">12</span>:<span class=\"number\">23</span>:08<span class=\"number\">.409</span> NotebookApp] Shutting down <span class=\"number\">0</span> kernels</span><br><span class=\"line\">(py36env) ~$</span><br></pre></td></tr></table></figure>\n\n<p>注意：服务器的 ip，不需要加自己的用户名，即 ‘server.address’ 即可，若写成 ‘<a href=\"mailto:&#x75;&#x73;&#101;&#114;&#110;&#x61;&#x6d;&#x65;&#x40;&#x73;&#x65;&#114;&#118;&#x65;&#114;&#x2e;&#x61;&#x64;&#100;&#114;&#x65;&#x73;&#x73;\">&#x75;&#x73;&#101;&#114;&#110;&#x61;&#x6d;&#x65;&#x40;&#x73;&#x65;&#114;&#118;&#x65;&#114;&#x2e;&#x61;&#x64;&#100;&#114;&#x65;&#x73;&#x73;</a>‘ 会报错，说其并非是一个 ip 地址</p>\n<figure class=\"highlight perl\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">Traceback (most recent call <span class=\"keyword\">last</span>):</span><br><span class=\"line\">  File <span class=\"string\">&quot;/home/username/VirtualEnv/py36env/lib/python3.6/site-packages/notebook/notebookapp.py&quot;</span>, line <span class=\"number\">864</span>, in _default_allow_remote</span><br><span class=\"line\">    addr = ipaddress.ip_address(self.ip)</span><br><span class=\"line\">  File <span class=\"string\">&quot;/usr/lib/python3.6/ipaddress.py&quot;</span>, line <span class=\"number\">54</span>, in ip_address</span><br><span class=\"line\">    address)</span><br><span class=\"line\">ValueError: <span class=\"string\">&#x27;username@server.address&#x27;</span> does <span class=\"keyword\">not</span> appear to be an IPv4 <span class=\"keyword\">or</span> IPv6 address</span><br></pre></td></tr></table></figure>\n<p>注意：c.NotebookApp.ip 的问题及报错</p>\n<figure class=\"highlight vim\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">#(<span class=\"number\">1</span>) <span class=\"keyword\">c</span>.NotebookApp.ip = <span class=\"string\">&#x27;username@server.address&#x27;</span></span><br><span class=\"line\">ValueError: <span class=\"string\">&#x27;username@server.address&#x27;</span> does not appear <span class=\"keyword\">to</span> <span class=\"keyword\">be</span> <span class=\"keyword\">an</span> IPv4 <span class=\"built_in\">or</span> IPv6 address</span><br><span class=\"line\"></span><br><span class=\"line\">#(<span class=\"number\">2</span>) <span class=\"keyword\">c</span>.NotebookApp.ip = <span class=\"string\">&#x27;server.address&#x27;</span></span><br><span class=\"line\">http://server.addres<span class=\"variable\">s:8888</span></span><br><span class=\"line\">无法访问此网站</span><br><span class=\"line\">server.address 的响应时间过长</span><br><span class=\"line\"></span><br><span class=\"line\">#(<span class=\"number\">3</span>) <span class=\"keyword\">c</span>.NotebookApp.ip = <span class=\"string\">&#x27;*&#x27;</span></span><br><span class=\"line\">ValueError: <span class=\"string\">&#x27;&#x27;</span> does not appear <span class=\"keyword\">to</span> <span class=\"keyword\">be</span> <span class=\"keyword\">an</span> IPv4 <span class=\"built_in\">or</span> IPv6 address</span><br><span class=\"line\"></span><br><span class=\"line\">#(<span class=\"number\">4</span>) <span class=\"keyword\">c</span>.NotebookApp.ip = <span class=\"string\">&#x27;0.0.0.0&#x27;</span></span><br><span class=\"line\">http://(server <span class=\"built_in\">or</span> <span class=\"number\">127.0</span>.<span class=\"number\">0.1</span>):<span class=\"number\">8888</span>/</span><br><span class=\"line\">无法访问此网站 (<span class=\"number\">4</span><span class=\"keyword\">a</span>/<span class=\"number\">4</span><span class=\"keyword\">b</span>)</span><br><span class=\"line\">(<span class=\"number\">4</span><span class=\"keyword\">a</span>) 找不到 server 的服务器 IP 地址</span><br><span class=\"line\">(<span class=\"number\">4</span><span class=\"keyword\">b</span>) <span class=\"number\">127.0</span>.<span class=\"number\">0.1</span> 拒绝了我们的连接请求</span><br></pre></td></tr></table></figure>\n\n<p>(7) 远程访问<br>此时应该可以直接从本地浏览器直接访问 <a href=\"http://address_of_remote:8888/\">http://address_of_remote:8888</a> 就可以看到 jupyter 的登录页面。（注意服务器上的 Jupyter notebook 不要关）</p>\n<h2 id=\"PyCharm\"><a href=\"#PyCharm\" class=\"headerlink\" title=\"PyCharm\"></a>PyCharm</h2><h3 id=\"Deployment\"><a href=\"#Deployment\" class=\"headerlink\" title=\"Deployment\"></a>Deployment</h3><p><strong>Tools -&gt; Deployment -&gt; Configuration</strong><br>+server, and remember to “Save password”</p>\n<p><strong>Tools -&gt; Deployment -&gt; Options</strong><br>click “Create empty directions”</p>\n<h3 id=\"Python-interpreter\"><a href=\"#Python-interpreter\" class=\"headerlink\" title=\"Python interpreter\"></a>Python interpreter</h3><p><strong>File -&gt; Settings</strong><br><strong>Project: your_name -&gt; Project Interpreter</strong><br>add the python path on the server, remember to “<strong>Move this server to IDE settings</strong>“ instead of “Create copy of this deployment server in IDE settings”<br><strong>Edit Sync Folders</strong> (Local Path, Remote Path)</p>\n<h3 id=\"其它配置\"><a href=\"#其它配置\" class=\"headerlink\" title=\"其它配置\"></a>其它配置</h3><h4 id=\"autopep8\"><a href=\"#autopep8\" class=\"headerlink\" title=\"autopep8\"></a>autopep8</h4><p><strong>File -&gt; Settings -&gt; Tools -&gt; External Tools -&gt; +</strong>  </p>\n<blockquote>\n<p>Program：C:\\Python35\\Scripts\\autopep8.exe<br>Parameters：–in-place –ignore&#x3D;E123,E133,E50 “$FilePath$“<br>Working directory：$FileDir$</p>\n</blockquote>\n<p><a href=\"https://blog.csdn.net/yannanxiu/article/details/54598404\">在PyCharm环境配置Autopep8到菜单栏</a><br><a href=\"https://wsgzao.github.io/post/autopep8/\">PyCharm 使用 autopep8 按 PEP8 风格自动排版 Python 代码</a></p>\n<h1 id=\"Local\"><a href=\"#Local\" class=\"headerlink\" title=\"Local\"></a>Local</h1><h2 id=\"Ubuntu-16-04-alongside-Win-7\"><a href=\"#Ubuntu-16-04-alongside-Win-7\" class=\"headerlink\" title=\"Ubuntu 16.04 (alongside Win 7)\"></a>Ubuntu 16.04 (alongside Win 7)</h2><p>我双系统安装失败了，现在只能用 Ubuntu，一启动 Win 7 就花屏</p>\n<h2 id=\"Windows-10\"><a href=\"#Windows-10\" class=\"headerlink\" title=\"Windows 10\"></a>Windows 10</h2><p>Bitvise SSH Client</p>\n<p>可以写个 .sh 然后 nohup 执行。<br>如果不用 nohup，一旦关闭终端&#x2F;连接断掉，这个脚本就会停止执行 </p>\n<figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">vim yourtask.sh</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">chmod</span> +x ./yourtask.sh</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">nohup</span> ./yourtask.sh</span></span><br><span class=\"line\"><span class=\"meta prompt_\"># </span><span class=\"language-bash\">查看使用空间</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\"><span class=\"built_in\">du</span> -h --max-depth=1</span></span><br></pre></td></tr></table></figure>\n\n\n\n\n<h1 id=\"GitHub\"><a href=\"#GitHub\" class=\"headerlink\" title=\"GitHub\"></a>GitHub</h1><figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">git checkout branchname</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">git pull upstream branchname</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">git rebase upstream/branchname</span></span><br><span class=\"line\"><span class=\"meta prompt_\"></span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">git <span class=\"built_in\">log</span>    <span class=\"comment\"># q (exit)</span></span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">git config --list</span></span><br></pre></td></tr></table></figure>\n\n\n\n","categories":["Records"],"tags":["Configuration","Linux","Git","Remote Server"]},{"title":"Logging in Python (日志处理)","url":"https://eustomaqua.github.io/2018/2018-09-18-Python-Logging/","content":"<link rel=\"stylesheet\" class=\"aplayer-secondary-style-marker\" href=\"/assets/css/APlayer.min.css\"><script src=\"/assets/js/APlayer.min.js\" class=\"aplayer-secondary-script-marker\"></script><!--\n2021/1/15 14:47pm Fri\nCategory: Programming\n-->\n\n\n\n<p><a href=\"https://blog.igevin.info/posts/python-log/\">Python日志功能详解</a><br><a href=\"http://python.jobbole.com/86887/\">Python中的logging模块</a></p>\n<h1 id=\"Why-为什么要使用-logging\"><a href=\"#Why-为什么要使用-logging\" class=\"headerlink\" title=\"Why: 为什么要使用 logging?\"></a>Why: 为什么要使用 logging?</h1><p>代码调试时常使用 print 函数输出一些中间变量的值或者相关信息，这样虽然简便，但是在程序调试完之后需要逐个删除或注释 print 语句，比较麻烦。<br>logging 模块能很好地解决这个问题，通过设置 severity level，容易控制在控制台打印的信息，也可以同时把日志信息输出到多个目的地，如控制台、日志文件、网络位置等。  </p>\n<h1 id=\"How-怎么使用-logging\"><a href=\"#How-怎么使用-logging\" class=\"headerlink\" title=\"How: 怎么使用 logging?\"></a>How: 怎么使用 logging?</h1><h2 id=\"日志基本用法\"><a href=\"#日志基本用法\" class=\"headerlink\" title=\"日志基本用法\"></a>日志基本用法</h2><h3 id=\"默认\"><a href=\"#默认\" class=\"headerlink\" title=\"默认\"></a>默认</h3><figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"comment\">#!/usr/local/bin/python</span></span><br><span class=\"line\"><span class=\"comment\"># -*- coding: utf-8 -*-</span></span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"keyword\">import</span> logging</span><br><span class=\"line\"></span><br><span class=\"line\">logging.debug(<span class=\"string\">&#x27;debug message&#x27;</span>)</span><br><span class=\"line\">logging.info(<span class=\"string\">&#x27;info message&#x27;</span>)</span><br><span class=\"line\">logging.warn(<span class=\"string\">&#x27;warn message&#x27;</span>)</span><br><span class=\"line\"><span class=\"comment\">#or logging.warning(&#x27;warn message&#x27;)</span></span><br><span class=\"line\">logging.error(<span class=\"string\">&#x27;error message&#x27;</span>)</span><br><span class=\"line\">logging.critical(<span class=\"string\">&#x27;critical message&#x27;</span>)</span><br><span class=\"line\"><span class=\"comment\"># 注意：debug, info 不会输出结果</span></span><br></pre></td></tr></table></figure>\n\n<p>默认情况下，日志将会被打印到屏幕上，日志级别为 WARNING (即只有日志级别等于或高于 WARNING 的日志信息才会输出)，日志格式为 <em>warning level:instance name:warning message</em></p>\n<h3 id=\"记录到文件\"><a href=\"#记录到文件\" class=\"headerlink\" title=\"记录到文件\"></a>记录到文件</h3><figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"keyword\">import</span> logging</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 配置日志文件和日志级别</span></span><br><span class=\"line\">logging.basicConfig(filename=<span class=\"string\">&#x27;logger.log&#x27;</span>, level=logging.INFO)</span><br><span class=\"line\"></span><br><span class=\"line\">logging.debug(<span class=\"string\">&#x27;debug message&#x27;</span>)</span><br><span class=\"line\">...</span><br></pre></td></tr></table></figure>\n\n<p>需要注意的是，配置应在代码文件开头设置，否则不会改变初始的设置 (即代码文件开头的原始设置)。</p>\n<h2 id=\"完善日志功能\"><a href=\"#完善日志功能\" class=\"headerlink\" title=\"完善日志功能\"></a>完善日志功能</h2><p>想要更灵活地使用日志模块，就要了解它是如何工作的。<br>Logger, Handler, Formatter 和 Filter 是日志模块的几个基本概念，其工作原理也要从这四个基本概念说起。  </p>\n<ul>\n<li>Logger 记录器，提供日志相关功能的调用接口</li>\n<li>Handler 处理器，将 (记录器产生的) 日志记录发送至合适的目的地。</li>\n<li>Filter 过滤器，提供更好的粒度控制，可决定输出哪些日志记录。</li>\n<li>Formatter 格式化器，指明最终输出中日志记录的格式</li>\n</ul>\n<h3 id=\"基本概念\"><a href=\"#基本概念\" class=\"headerlink\" title=\"基本概念\"></a>基本概念</h3><h4 id=\"Logger\"><a href=\"#Logger\" class=\"headerlink\" title=\"Logger\"></a>Logger</h4><p>Logger 记录器，其对象实例是日志记录功能的载体，如 </p>\n<figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"keyword\">import</span> logging</span><br><span class=\"line\"></span><br><span class=\"line\">logger = logging.getLogger(<span class=\"string\">&#x27;simple_example_name&#x27;</span>)</span><br><span class=\"line\"></span><br><span class=\"line\">logger.debug(<span class=\"string\">&#x27;debug message&#x27;</span>)</span><br><span class=\"line\">logger.info(<span class=\"string\">&#x27;info message&#x27;</span>)</span><br><span class=\"line\">logger.warn(<span class=\"string\">&#x27;warn message&#x27;</span>)</span><br><span class=\"line\">logger.error(<span class=\"string\">&#x27;error message&#x27;</span>)</span><br><span class=\"line\">logger.critical(<span class=\"string\">&#x27;critical message&#x27;</span>)</span><br></pre></td></tr></table></figure>\n\n<p>注意：Logger 对象从不直接实例化，而是通过模块级的功能 <em>logging.getLogger(name)</em> 来创建 Logger 实例。调用 <em>logging.getLogger(name)</em> 功能时，如果传入的 name 参数值相同，则总是返回同一个 Logger 对象实例的引用。</p>\n<p>如果没有显式进行创建，则默认创建一个 root logger，并应用默认的日志级别 (WARN)、默认的处理器 Handler (StreamHandler, 即将日志信息打印输出到标准输出上)、和默认的格式化器 Formatter (默认的格式即为第一个简单使用程序中输出的格式，即 <em>warning level:instance name:warning message</em>)</p>\n<h4 id=\"Handler\"><a href=\"#Handler\" class=\"headerlink\" title=\"Handler\"></a>Handler</h4><p>Handler 将日志信息发送到设定位置，可通过 Logger 对象的 <em>addHandler()</em> 方法为 Logger 对象添加 0 或多个 handler。日志的一种典型应用场景是：系统希望将所有的日志信息保存到 log 文件中，其中日志等级等于或高于 ERROR 的消息还要在屏幕标准输出上显示，日志等级为 CRITICAL 的还需要发送邮件通知；这种场景就需要 3 个独立的 handler 来实现需求，分别与指定的日志等级或日志位置做响应。</p>\n<p>注意：为 Logger 配置的 handler 不能是 Handler 基类对象，而是 Handler 的子类对象。常用的 Handler 有 StreamHandler, FileHandler, 和 NullHandler。</p>\n<h4 id=\"Formatter\"><a href=\"#Formatter\" class=\"headerlink\" title=\"Formatter\"></a>Formatter</h4><p>Formatter 用于设置日志输出的格式，与 Logger&#x2F;Handler 不同，它可以直接初始化对象，即 *formatter&#x3D;logging.Formatter(fmt&#x3D;None, datefmt&#x3D;None)*。创建时分别传入两个参数来修改日志格式和时间格式，默认的日志格式为 <em>%(asctime)s - %(levelname)s - %(message)s</em>, 默认的时间格式为 <em>%Y-%m-%d %H:%M:%S</em>.</p>\n<h4 id=\"Filter\"><a href=\"#Filter\" class=\"headerlink\" title=\"Filter\"></a>Filter</h4><p>Filter 可用于 Logger 对象或 Handler 对象，用于提供比日志等级更加复杂的日志过滤方式。默认的 filter 只允许在指定 logger 层级下的日志消息通过过滤。<br>举个栗子，若把 filter 设置为 <em>filter&#x3D;logging.Filter(‘A.B’)</em>, 则 logger ‘A.B’, ‘A.B.C’, ‘A.B.C.D’, ‘A.B.D’ 产生的日志信息可以通过过滤，但 ‘A.BB’, ‘B.A.B’ 均不行。若以空字符串初始化 filter ，则所有的日志消息都可以通过过滤。<br>Filter 在日志功能配置中是非必须的，只在对日志消息过滤需求比较复杂时配置使用即可。</p>\n<h3 id=\"日志产生流程\"><a href=\"#日志产生流程\" class=\"headerlink\" title=\"日志产生流程\"></a>日志产生流程</h3><p>日志产生的流程逻辑参考图<br><img src=\"/images/2018-09/logging_flow.png\" alt=\"avatar\" height=\"95%\" width=\"95%\"></p>\n<h3 id=\"日志模块的使用\"><a href=\"#日志模块的使用\" class=\"headerlink\" title=\"日志模块的使用\"></a>日志模块的使用</h3><p>日志模块使用的关键是“日志的配置”。配置好之后，只需调用 logger.INFO(), logger.ERROR() 等方法即可创建日志内容。</p>\n<p>配置日志模块有三种方法：  </p>\n<ol>\n<li>在代码中显式创建 loggers, handlers, formatters 甚至 filters，并调用这几个对象中的各个配置函数来完成日志配置  </li>\n<li>将配置信息写到配置文件中，然后读取配置文件信息来完成日志配置  </li>\n<li>将配置信息写到一个字典 dict 中，然后读取这个配置字典来完成日志配置</li>\n</ol>\n<h4 id=\"代码配置和使用\"><a href=\"#代码配置和使用\" class=\"headerlink\" title=\"代码配置和使用\"></a>代码配置和使用</h4><p>通过代码配置日志模块胜在方便简单，但不推荐在大型项目中使用，因为修改配置就需要修改代码。<br>这种方法可帮助我们理解日志模块的工作原理，因此用作案例。  </p>\n<figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br><span class=\"line\">39</span><br><span class=\"line\">40</span><br><span class=\"line\">41</span><br><span class=\"line\">42</span><br><span class=\"line\">43</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"keyword\">import</span> logging</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\">## 创建 Logger</span></span><br><span class=\"line\"><span class=\"comment\"># Create logger</span></span><br><span class=\"line\">logger = logging.getLogger(<span class=\"string\">&#x27;test&#x27;</span>)</span><br><span class=\"line\"><span class=\"comment\"># Set default log level</span></span><br><span class=\"line\">logger.setLevel(logging.DEBUG)</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\">## 创建 Handler</span></span><br><span class=\"line\"><span class=\"comment\"># Create console handler and set level to warn</span></span><br><span class=\"line\">ch = logging.StreamHandler()</span><br><span class=\"line\">ch.setLevel(logging.WARN)</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\">## 创建 Formatter</span></span><br><span class=\"line\"><span class=\"comment\"># Create formatter</span></span><br><span class=\"line\">formatter = logging.Formatter(<span class=\"string\">&#x27;%(asctime)s - %(name)s - %(levelname)s - %(message)s&#x27;</span>)</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\">## 配置 Logger</span></span><br><span class=\"line\"><span class=\"comment\"># add formatter to ch</span></span><br><span class=\"line\">ch.setFormatter(formatter)</span><br><span class=\"line\"><span class=\"comment\"># add ch to logger</span></span><br><span class=\"line\">logger.addHandler(ch)</span><br><span class=\"line\"><span class=\"comment\"># The final log level is the higher one between the default and the one in handler</span></span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\">## 使用日志模块</span></span><br><span class=\"line\">logger.debug(<span class=\"string\">&#x27;debug message&#x27;</span>)</span><br><span class=\"line\">logger.info(<span class=\"string\">&#x27;info message&#x27;</span>)</span><br><span class=\"line\">logger.warn(<span class=\"string\">&#x27;warn message&#x27;</span>)</span><br><span class=\"line\">logger.error(<span class=\"string\">&#x27;error message&#x27;</span>)</span><br><span class=\"line\">logger.critical(<span class=\"string\">&#x27;critical message&#x27;</span>)</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\">## &gt;&gt;&gt; logger.debug(&#x27;debug&#x27;)</span></span><br><span class=\"line\"><span class=\"comment\">## &gt;&gt;&gt; logger.warn(&#x27;warn&#x27;)</span></span><br><span class=\"line\"><span class=\"comment\">## 2018-09-18 04:40:21,474 - test - WARNING - warn</span></span><br><span class=\"line\"><span class=\"comment\">## &gt;&gt;&gt; logger.critical(&#x27;critical message&#x27;)</span></span><br><span class=\"line\"><span class=\"comment\">## 2018-09-18 04:42:01,788 - test - CRITICAL - critical message</span></span><br><span class=\"line\"><span class=\"comment\">## &gt;&gt;&gt; </span></span><br><span class=\"line\"></span><br><span class=\"line\">ch2 = logging.FileHandler(<span class=\"string\">&#x27;logger.log&#x27;</span>)</span><br><span class=\"line\">ch2.setLevel(logging.INFO)</span><br><span class=\"line\">ch2.setFormatter(formatter)</span><br><span class=\"line\">logger.addHandler(ch2)</span><br><span class=\"line\"><span class=\"comment\"># &#x27;application&#x27; code</span></span><br></pre></td></tr></table></figure>\n\n<p>这个 logger.log 文件的写入是追加的，不是重新写入的形式。如这个例子中， logger.log 的文件内容是 (前三行是之前的测试内容):  </p>\n<figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">INFO:root:info</span><br><span class=\"line\">ERROR:root:error</span><br><span class=\"line\">WARNING:root:warn</span><br><span class=\"line\"><span class=\"number\">2018</span>-09-<span class=\"number\">18</span> 04:<span class=\"number\">44</span>:<span class=\"number\">33</span>,<span class=\"number\">129</span> - test - INFO - info message</span><br></pre></td></tr></table></figure>\n\n<h4 id=\"文件配置和使用\"><a href=\"#文件配置和使用\" class=\"headerlink\" title=\"文件配置和使用\"></a>文件配置和使用</h4><p>通过配置文件配置日志模块时，配置文件通常使用 <em>.ini</em> 格式，日志模块需要调用 <em>fileConfig</em> ，即 <em>logging.config.fileConfig(‘logging_config.ini’)</em> ，然后 logger 的使用方法同上。 </p>\n<figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"keyword\">import</span> logging</span><br><span class=\"line\"><span class=\"keyword\">import</span> logging.config</span><br><span class=\"line\"></span><br><span class=\"line\">logging.config.fileConfig(<span class=\"string\">&#x27;logging_config.ini&#x27;</span>)</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># create logger</span></span><br><span class=\"line\">logger = logging.getLogger(<span class=\"string\">&#x27;root&#x27;</span>)</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># &#x27;application&#x27; code</span></span><br><span class=\"line\">logger.debug(<span class=\"string\">&#x27;....&#x27;</span>)</span><br></pre></td></tr></table></figure>\n\n<p>其中，<em>logging_config.ini</em> 文件内容为 </p>\n<figure class=\"highlight vim\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">[loggers]</span><br><span class=\"line\"><span class=\"built_in\">keys</span>=root,simpleExample</span><br><span class=\"line\"></span><br><span class=\"line\">[handlers]</span><br><span class=\"line\"><span class=\"built_in\">keys</span>=consoleHandler</span><br><span class=\"line\"></span><br><span class=\"line\">[formatters]</span><br><span class=\"line\"><span class=\"built_in\">keys</span>=simpleFormatter</span><br><span class=\"line\"></span><br><span class=\"line\">[logger_root]</span><br><span class=\"line\">level=DEBUG</span><br><span class=\"line\">handlers=consoleHandler</span><br><span class=\"line\"></span><br><span class=\"line\">[logger_simpleExample]</span><br><span class=\"line\">level=INFO</span><br><span class=\"line\">handlers=consoleHandler</span><br><span class=\"line\">qualname=simpleExample</span><br><span class=\"line\">propagate=<span class=\"number\">0</span></span><br><span class=\"line\"></span><br><span class=\"line\">[handler_consoleHandler]</span><br><span class=\"line\">class=StreamHandler</span><br><span class=\"line\">level=DEBUG</span><br><span class=\"line\">formatter=simpleFormatter</span><br><span class=\"line\"><span class=\"keyword\">args</span>=(sys.stdout,)</span><br><span class=\"line\"></span><br><span class=\"line\">[formatter_simpleFormatter]</span><br><span class=\"line\">format=%(asctime)s - %(name)s - %(levelname)s - %(message)s</span><br></pre></td></tr></table></figure>\n\n<p>通过配置文件配置日志模块，逻辑与代码中的配置一样，也是把 logger, handler 和 formatter 定义好，然后组装到一起。只是 ini 配置与代码配置的语法不通，可参考上例做相应修改。</p>\n<h4 id=\"字典配置和使用\"><a href=\"#字典配置和使用\" class=\"headerlink\" title=\"字典配置和使用\"></a>字典配置和使用</h4><p>基于 Dict 对象配置日志模块在 Python 中应用广泛，很多 Django 或 Flask 项目都采用这种方式。以下是一个使用样例，可参考用于修改。</p>\n<figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br><span class=\"line\">39</span><br><span class=\"line\">40</span><br><span class=\"line\">41</span><br><span class=\"line\">42</span><br><span class=\"line\">43</span><br><span class=\"line\">44</span><br><span class=\"line\">45</span><br><span class=\"line\">46</span><br><span class=\"line\">47</span><br><span class=\"line\">48</span><br><span class=\"line\">49</span><br><span class=\"line\">50</span><br><span class=\"line\">51</span><br><span class=\"line\">52</span><br><span class=\"line\">53</span><br><span class=\"line\">54</span><br><span class=\"line\">55</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"keyword\">import</span> logging</span><br><span class=\"line\"><span class=\"keyword\">import</span> logging.config</span><br><span class=\"line\"></span><br><span class=\"line\">config = &#123;</span><br><span class=\"line\">  <span class=\"string\">&#x27;version&#x27;</span>: <span class=\"number\">1</span>,</span><br><span class=\"line\">  <span class=\"string\">&#x27;formatters&#x27;</span>: &#123;</span><br><span class=\"line\">    <span class=\"string\">&#x27;simple&#x27;</span>: &#123;</span><br><span class=\"line\">      <span class=\"string\">&#x27;format&#x27;</span>: <span class=\"string\">&#x27;%(asctime)s - %(name)s - %(levelname)s - %(message)s&#x27;</span>, </span><br><span class=\"line\">    &#125;,</span><br><span class=\"line\">  &#125;,</span><br><span class=\"line\">  <span class=\"string\">&#x27;handlers&#x27;</span>: &#123;</span><br><span class=\"line\">    <span class=\"string\">&#x27;console&#x27;</span>: &#123;</span><br><span class=\"line\">      <span class=\"string\">&#x27;class&#x27;</span>: <span class=\"string\">&#x27;logging.StreamHandler&#x27;</span>,</span><br><span class=\"line\">      <span class=\"string\">&#x27;level&#x27;</span>: <span class=\"string\">&#x27;DEBUG&#x27;</span>,</span><br><span class=\"line\">      <span class=\"string\">&#x27;formatter&#x27;</span>: <span class=\"string\">&#x27;simple&#x27;</span></span><br><span class=\"line\">    &#125;,</span><br><span class=\"line\">    <span class=\"string\">&#x27;file&#x27;</span>: &#123;</span><br><span class=\"line\">      <span class=\"string\">&#x27;class&#x27;</span>: <span class=\"string\">&#x27;logging.FileHandler&#x27;</span>,</span><br><span class=\"line\">      <span class=\"string\">&#x27;filename&#x27;</span>: <span class=\"string\">&#x27;logging.log&#x27;</span>,</span><br><span class=\"line\">      <span class=\"string\">&#x27;level&#x27;</span>: <span class=\"string\">&#x27;DEBUG&#x27;</span>,</span><br><span class=\"line\">      <span class=\"string\">&#x27;formatter&#x27;</span>: <span class=\"string\">&#x27;simple&#x27;</span></span><br><span class=\"line\">    &#125;,</span><br><span class=\"line\">  &#125;,</span><br><span class=\"line\">  <span class=\"string\">&#x27;loggers&#x27;</span>: &#123;</span><br><span class=\"line\">    <span class=\"string\">&#x27;root&#x27;</span>: &#123;</span><br><span class=\"line\">      <span class=\"string\">&#x27;handlers&#x27;</span>: [<span class=\"string\">&#x27;console&#x27;</span>],</span><br><span class=\"line\">      <span class=\"string\">&#x27;level&#x27;</span>: <span class=\"string\">&#x27;DEBUG&#x27;</span>,</span><br><span class=\"line\">      <span class=\"comment\"># &#x27;propagate&#x27;: True,</span></span><br><span class=\"line\">    &#125;,</span><br><span class=\"line\">    <span class=\"string\">&#x27;simple&#x27;</span>: &#123;</span><br><span class=\"line\">      <span class=\"string\">&#x27;handlers&#x27;</span>: [<span class=\"string\">&#x27;console&#x27;</span>, <span class=\"string\">&#x27;file&#x27;</span>],</span><br><span class=\"line\">      <span class=\"string\">&#x27;level&#x27;</span>: <span class=\"string\">&#x27;WARN&#x27;</span>,</span><br><span class=\"line\">    &#125;</span><br><span class=\"line\">  &#125;</span><br><span class=\"line\">&#125;</span><br><span class=\"line\"></span><br><span class=\"line\">logging.config.dictConfig(config)</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"built_in\">print</span> <span class=\"string\">&#x27;logger:&#x27;</span></span><br><span class=\"line\">logger = logging.getLogger(<span class=\"string\">&#x27;root&#x27;</span>)</span><br><span class=\"line\"></span><br><span class=\"line\">logger.debug(<span class=\"string\">&#x27;debug message&#x27;</span>)</span><br><span class=\"line\">logger.info(<span class=\"string\">&#x27;info message&#x27;</span>)</span><br><span class=\"line\">logger.warn(<span class=\"string\">&#x27;warn message&#x27;</span>)</span><br><span class=\"line\">logger.error(<span class=\"string\">&#x27;error message&#x27;</span>)</span><br><span class=\"line\">logger.critical(<span class=\"string\">&#x27;critical message&#x27;</span>)</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"built_in\">print</span> <span class=\"string\">&#x27;logger2:&#x27;</span></span><br><span class=\"line\">logger2 = logging.getLogger(<span class=\"string\">&#x27;simple&#x27;</span>)</span><br><span class=\"line\"></span><br><span class=\"line\">logger2.debug(<span class=\"string\">&#x27;debug message updated&#x27;</span>)</span><br><span class=\"line\">logger2.info(<span class=\"string\">&#x27;info message updated&#x27;</span>)</span><br><span class=\"line\">logger2.warn(<span class=\"string\">&#x27;warn message updated&#x27;</span>)</span><br><span class=\"line\">logger2.error(<span class=\"string\">&#x27;error message updated&#x27;</span>)</span><br><span class=\"line\">logger2.critical(<span class=\"string\">&#x27;critical message updated&#x27;</span>)</span><br></pre></td></tr></table></figure>\n\n<h3 id=\"日志的严重等级\"><a href=\"#日志的严重等级\" class=\"headerlink\" title=\"*日志的严重等级\"></a>*日志的严重等级</h3><p>Log Level 如下，</p>\n<figure class=\"highlight vim\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">CRITICAL: <span class=\"number\">50</span></span><br><span class=\"line\">ERROR: <span class=\"number\">40</span></span><br><span class=\"line\">WARNING: <span class=\"number\">30</span></span><br><span class=\"line\">INFO: <span class=\"number\">20</span></span><br><span class=\"line\">DEBUG: <span class=\"number\">10</span></span><br><span class=\"line\">NOTSET: <span class=\"number\">0</span></span><br></pre></td></tr></table></figure>\n\n<p>等级包括 NOTSET, DEBUG, INFO, WARNING, ERROR, CRITICAL, 严重程度依次递增。</p>\n<h1 id=\"Which-查阅\"><a href=\"#Which-查阅\" class=\"headerlink\" title=\"Which: 查阅\"></a>Which: 查阅</h1><h2 id=\"示例\"><a href=\"#示例\" class=\"headerlink\" title=\"示例\"></a>示例</h2><figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"comment\"># -*- coding: utf-8 -*-</span></span><br><span class=\"line\"><span class=\"keyword\">import</span> logging</span><br><span class=\"line\"><span class=\"keyword\">import</span> sys</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 获取logger实例，如果参数为空则返回root logger</span></span><br><span class=\"line\">logger = logging.getLogger(<span class=\"string\">&quot;AppName&quot;</span>)</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 指定logger输出格式</span></span><br><span class=\"line\">formatter = logging.Formatter(<span class=\"string\">&#x27;%(asctime)s %(levelname)-8s%: %(message)s&#x27;</span>)</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 文件日志</span></span><br><span class=\"line\">file_handler = logging.FileHandler(<span class=\"string\">&quot;test.log&quot;</span>)</span><br><span class=\"line\">file_handler.setFormatter(formatter)  <span class=\"comment\"># 可以通过setFormatter指定输出格式</span></span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 控制台日志</span></span><br><span class=\"line\">console_handler = logging.StreamHandler(sys.stdout)</span><br><span class=\"line\">console_handler.formatter = formatter  <span class=\"comment\"># 也可以直接给formatter赋值</span></span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 为logger添加的日志处理器</span></span><br><span class=\"line\">logger.addHandler(file_handler)</span><br><span class=\"line\">logger.addHandler(console_handler)</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 指定日志的最低输出级别，默认为WARN级别</span></span><br><span class=\"line\">logger.setLevel(logging.INFO)</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 输出不同级别的log</span></span><br><span class=\"line\">logger.debug(<span class=\"string\">&#x27;this is debug info&#x27;</span>)</span><br><span class=\"line\">logger.info(<span class=\"string\">&#x27;this is information&#x27;</span>)</span><br><span class=\"line\">logger.warn(<span class=\"string\">&#x27;this is warning message&#x27;</span>)</span><br><span class=\"line\">logger.error(<span class=\"string\">&#x27;this is error message&#x27;</span>)</span><br><span class=\"line\">logger.fatal(<span class=\"string\">&#x27;this is fatal message, it is same as logger.critical&#x27;</span>)</span><br><span class=\"line\">logger.critical(<span class=\"string\">&#x27;this is critical message&#x27;</span>)</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 移除一些日志处理器</span></span><br><span class=\"line\">logger.removeHandler(file_handler)</span><br></pre></td></tr></table></figure>\n\n<h2 id=\"格式化输出日志\"><a href=\"#格式化输出日志\" class=\"headerlink\" title=\"格式化输出日志\"></a>格式化输出日志</h2><figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"comment\"># 格式化输出</span></span><br><span class=\"line\"></span><br><span class=\"line\">service_name = <span class=\"string\">&quot;Booking&quot;</span></span><br><span class=\"line\">logger.error(<span class=\"string\">&#x27;%s service is down!&#x27;</span> % service_name) \t\t\t  <span class=\"comment\">#使用Python自带的字符串格式化，不推荐</span></span><br><span class=\"line\">logger.error(<span class=\"string\">&#x27;%s service is down!&#x27;</span>, service_name) \t\t\t  <span class=\"comment\">#使用logger的格式化，推荐</span></span><br><span class=\"line\">logger.error(<span class=\"string\">&#x27;%s service is %s!&#x27;</span>, service_name, <span class=\"string\">&#x27;down&#x27;</span>) \t  <span class=\"comment\">#多参数格式化</span></span><br><span class=\"line\">logger.error(<span class=\"string\">&#x27;&#123;&#125; service is &#123;&#125;&#x27;</span>.<span class=\"built_in\">format</span>(service_name, <span class=\"string\">&#x27;down&#x27;</span>)) <span class=\"comment\">#使用format函数，推荐</span></span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 2018-09-18 21:11:34,493 ERROR   : Booking service is down!</span></span><br></pre></td></tr></table></figure>\n\n<h2 id=\"记录异常信息\"><a href=\"#记录异常信息\" class=\"headerlink\" title=\"记录异常信息\"></a>记录异常信息</h2><p>当使用logging模块记录异常信息时，不需要传入该异常对象，直接调用 logger.error() 或 logger.exception() 就可以将当前异常记录下来。</p>\n<figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"comment\"># 记录异常信息</span></span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"keyword\">try</span>:</span><br><span class=\"line\">  <span class=\"number\">1</span> / <span class=\"number\">0</span></span><br><span class=\"line\"><span class=\"keyword\">except</span>:</span><br><span class=\"line\">  <span class=\"comment\"># 等同于error级别，但是会额外记录当前抛出的异常堆栈信息</span></span><br><span class=\"line\">  logger.exception(<span class=\"string\">&#x27;this is an exception message&#x27;</span>)</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 2016-10-08 21:59:19,493 ERROR   : this is an exception message</span></span><br><span class=\"line\"><span class=\"comment\"># Traceback (most recent call last):</span></span><br><span class=\"line\"><span class=\"comment\">#   File &quot;D:/Git/py_labs/demo/use_logging.py&quot;, line 45, in </span></span><br><span class=\"line\"><span class=\"comment\">#     1 / 0</span></span><br><span class=\"line\"><span class=\"comment\"># ZeroDivisionError: integer division or modulo by zero</span></span><br></pre></td></tr></table></figure>\n\n<!-- <table border=\"1\">\n  <tr>\n    <th> Value   </th><th> Meaning </th>\n  </tr>\n  <tr><td> %(name)s            </td><td> Logger 的名字 </td></tr>\n  <tr><td> %(levelno)s         </td><td> 数字形式的日志级别 </td>\n  </tr>\n  <tr><td> %(levelname)s       </td><td> 文本形式的日志级别 </td>\n  </tr>\n  <tr><td> %(message)s         </td><td> 用户输出的消息 </td>\n  </tr>\n  <tr>\n    <td> %(created)f         </td><td> 当前时间，用 UNIX 标准的表示时间的浮点数表示 </td>\n  </tr>\n  <tr>\n    <td> %(relativeCreated)d </td><td> 输出日志信息时的，自 Logger 创建以来的毫秒数 </td>\n  </tr>\n  <tr>\n    <td> %(asctime)s         </td>\n    <td> 字符串形式的当前时间。默认格式是 \"2003-07-08 16:49:45,896\"。逗号后面的是毫秒 </td>\n  </tr>\n  <tr>\n    <td> %(pathname)s        </td><td> 调用日志输出函数的模块的完整路径名，可能没有 </td>\n  </tr>\n  <tr><td> %(filename)s        </td><td> 调用日志输出函数的模块的文件名 </td></tr>\n  <tr>\n    <td> %(module)s          </td><td> 调用日志输出函数的模块名，filename 的名字部分 </td>\n  </tr>\n  <tr><td> %(funcName)s        </td><td> 调用日志输出函数的函数名 </td></tr>\n  <tr><td> %(lineno)d          </td><td> 调用日志输出函数的语句所在代码行 </td></tr>\n  <tr><td> %(thread)d          </td><td> 线程 ID ，可能没有 </td></tr>\n  <tr><td> %(threadName)s      </td><td> 线程名，可能没有 </td></tr>\n  <tr><td> %(process)d         </td><td> 进程 ID ，可能没有 </td></tr>\n  <tr><td> %(processName)s     </td><td> 进程名，可能没有 </td></tr>\n</table>\n-->\n\n<h2 id=\"修改日志消息的格式\"><a href=\"#修改日志消息的格式\" class=\"headerlink\" title=\"修改日志消息的格式\"></a>修改日志消息的格式</h2><p><strong>Formatter 日志格式</strong><br>Formatter 对象定义了 log 信息的结构和内容，构造时需要带两个参数：  </p>\n<ul>\n<li>一个是格式化的模板 fmt ，默认会包含最基本的 level 和 message 信息  </li>\n<li>一个是格式化的时间样式 datefmt ，默认为 2003-07-08 16:49:45,896 (%Y-%m-%d %H:%M:%S)</li>\n</ul>\n<p>fmt 中允许使用的变量可参考下表  </p>\n<table>\n<thead>\n<tr>\n<th>Value</th>\n<th>Meaning</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>%(name)s</td>\n<td>Logger 的名字</td>\n</tr>\n<tr>\n<td>%(levelno)s</td>\n<td>数字形式的日志级别</td>\n</tr>\n<tr>\n<td>%(levelname)s</td>\n<td>文本形式的日志级别</td>\n</tr>\n<tr>\n<td>%(message)s</td>\n<td>用户输出的消息</td>\n</tr>\n<tr>\n<td>%(created)f</td>\n<td>当前时间，用 UNIX 标准的表示时间的浮点数表示</td>\n</tr>\n<tr>\n<td>%(relativeCreated)d</td>\n<td>输出日志信息时的，自 Logger 创建以来的毫秒数</td>\n</tr>\n<tr>\n<td>%(asctime)s</td>\n<td>字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒</td>\n</tr>\n<tr>\n<td>%(pathname)s</td>\n<td>调用日志输出函数的模块的完整路径名，可能没有</td>\n</tr>\n<tr>\n<td>%(filename)s</td>\n<td>调用日志输出函数的模块的文件名</td>\n</tr>\n<tr>\n<td>%(module)s</td>\n<td>调用日志输出函数的模块名，filename 的名字部分</td>\n</tr>\n<tr>\n<td>%(funcName)s</td>\n<td>调用日志输出函数的函数名</td>\n</tr>\n<tr>\n<td>%(lineno)d</td>\n<td>调用日志输出函数的语句所在代码行</td>\n</tr>\n<tr>\n<td>%(thread)d</td>\n<td>线程 ID ，可能没有</td>\n</tr>\n<tr>\n<td>%(threadName)s</td>\n<td>线程名，可能没有</td>\n</tr>\n<tr>\n<td>%(process)d</td>\n<td>进程 ID ，可能没有</td>\n</tr>\n<tr>\n<td>%(processName)s</td>\n<td>进程名，可能没有</td>\n</tr>\n</tbody></table>\n<h2 id=\"跌过的坑不要再爬一遍\"><a href=\"#跌过的坑不要再爬一遍\" class=\"headerlink\" title=\"跌过的坑不要再爬一遍\"></a>跌过的坑不要再爬一遍</h2><p>logging 全局设一个就够了，否则会重复输出</p>\n<p>使用同名 logger 会拿到同一实例，这样可以实现跨模块调用同样的 logger 来记录日志；另外也可以通过日志名称来区分同一程序的不同模块。</p>\n<h1 id=\"参考链接\"><a href=\"#参考链接\" class=\"headerlink\" title=\"参考链接\"></a>参考链接</h1><p><a href=\"https://docs.python.org/2/library/logging.html#logrecord-attributes\">logging - Logging facility for Python</a><br><a href=\"https://docs.python.org/2/library/time.html#time.strftime\">time.strftime(format[, t])</a><br><a href=\"http://zhangzhk.com/2018/01/13/python-logging-module/\">Python 中 Logging 模块使用方法</a><br><a href=\"https://blog.csdn.net/chosen0ne/article/details/7319306\">Python日志输出——logging模块</a><br><a href=\"https://www.cnblogs.com/yyds/p/6901864.html\">Python之日志处理(logging模块)</a><br><a href=\"http://www.codebelief.com/article/2017/05/python-logging-module-tutorial/\">Python logging 模块使用指南</a>  </p>\n<h1 id=\"Examples\"><a href=\"#Examples\" class=\"headerlink\" title=\"* Examples\"></a>* Examples</h1><!--update: 2020/4/16 4:49am Thu-->\n\n<h2 id=\"Only-One\"><a href=\"#Only-One\" class=\"headerlink\" title=\"Only One\"></a>Only One</h2><p>目标场景：比如说两个模块，在其中一个模块中引用另外一个模块，并存在某一日志文件中</p>\n<ul>\n<li><p>test.py</p>\n<figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"keyword\">from</span> __future__ <span class=\"keyword\">import</span> absolute_import</span><br><span class=\"line\"><span class=\"keyword\">from</span> __future__ <span class=\"keyword\">import</span> division</span><br><span class=\"line\"><span class=\"keyword\">from</span> __future__ <span class=\"keyword\">import</span> print_function</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"keyword\">import</span> logging</span><br><span class=\"line\">logging.basicConfig(level=logging.INFO)</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"keyword\">import</span> os</span><br><span class=\"line\"><span class=\"keyword\">if</span> os.path.exists(<span class=\"string\">&#x27;logger.log&#x27;</span>):</span><br><span class=\"line\">    os.remove(<span class=\"string\">&#x27;logger.log&#x27;</span>)</span><br><span class=\"line\"></span><br><span class=\"line\">logger = logging.getLogger(<span class=\"string\">&#x27;youruser&#x27;</span>)</span><br><span class=\"line\">ch2 = logging.FileHandler(<span class=\"string\">&#x27;logger.log&#x27;</span>)</span><br><span class=\"line\">ch2.setLevel(logging.NOTSET)</span><br><span class=\"line\">formatter = logging.Formatter(<span class=\"string\">&#x27;%(asctime)s %(name)s/%(levelname)s: %(message)s&#x27;</span>)</span><br><span class=\"line\"><span class=\"comment\"># formatter = logging.Formatter(&#x27;%(created)f - %(name)s - %(levelno)s - %(message)s&#x27;)</span></span><br><span class=\"line\"><span class=\"comment\"># formatter = logging.Formatter(&#x27;%(relativeCreated)s - %(module)s/%(funcName)s | %(message)s&#x27;)</span></span><br><span class=\"line\">ch2.setFormatter(formatter)</span><br><span class=\"line\">logger.addHandler(ch2)</span><br><span class=\"line\">logger.info(<span class=\"string\">&#x27;&#x27;</span>)</span><br><span class=\"line\">logger.info(<span class=\"string\">&#x27;2\\n&#x27;</span>)</span><br><span class=\"line\">logger.info(<span class=\"string\">&#x27;\\n3&#x27;</span>)</span><br><span class=\"line\">logger.info(<span class=\"string\">&#x27;\\t4&#x27;</span>)</span><br><span class=\"line\">logger.warning(<span class=\"string\">&#x27;hello&#x27;</span>)</span><br><span class=\"line\">logger.warn(<span class=\"string\">&#x27;world&#x27;</span>)</span><br><span class=\"line\">logger.warn(<span class=\"string\">&#x27;main Test &#123;&#125;&#x27;</span>.<span class=\"built_in\">format</span>(<span class=\"number\">4</span>))</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"keyword\">from</span> testa <span class=\"keyword\">import</span> funcA</span><br><span class=\"line\">funcA(logger)</span><br></pre></td></tr></table></figure></li>\n<li><p>testa.py</p>\n<figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"comment\"># import logging</span></span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"keyword\">def</span> <span class=\"title function_\">funcA</span>(<span class=\"params\">logger</span>):</span><br><span class=\"line\">    logger.warn(<span class=\"string\">&#x27;Test A&#x27;</span>)</span><br></pre></td></tr></table></figure>\n</li>\n<li><p>print <code>logger.log</code></p>\n<figure class=\"highlight txt\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">2020-04-15 04:53:45,247 youruser/INFO: </span><br><span class=\"line\">2020-04-15 04:53:45,247 youruser/INFO: 2</span><br><span class=\"line\"></span><br><span class=\"line\">2020-04-15 04:53:45,248 youruser/INFO: </span><br><span class=\"line\">3</span><br><span class=\"line\">2020-04-15 04:53:45,248 youruser/INFO:  4</span><br><span class=\"line\">2020-04-15 04:53:45,248 youruser/WARNING: hello</span><br><span class=\"line\">2020-04-15 04:53:45,248 youruser/WARNING: world</span><br><span class=\"line\">2020-04-15 04:53:45,249 youruser/WARNING: main Test 4</span><br><span class=\"line\">2020-04-15 04:53:45,250 youruser/WARNING: Test A</span><br><span class=\"line\"></span><br></pre></td></tr></table></figure></li>\n</ul>\n<h2 id=\"Multiple-Outputs\"><a href=\"#Multiple-Outputs\" class=\"headerlink\" title=\"Multiple Outputs\"></a>Multiple Outputs</h2><p>目标场景：想同时输出两个 logging 文件，一个存自定义设置的信息，一个用于输出 tensorflow 给出的日志信息</p>\n<h3 id=\"main\"><a href=\"#main\" class=\"headerlink\" title=\"main\"></a>main</h3><ul>\n<li>testdouble.py<figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br><span class=\"line\">39</span><br><span class=\"line\">40</span><br><span class=\"line\">41</span><br><span class=\"line\">42</span><br><span class=\"line\">43</span><br><span class=\"line\">44</span><br><span class=\"line\">45</span><br><span class=\"line\">46</span><br><span class=\"line\">47</span><br><span class=\"line\">48</span><br><span class=\"line\">49</span><br><span class=\"line\">50</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"keyword\">from</span> __future__ <span class=\"keyword\">import</span> absolute_import</span><br><span class=\"line\"><span class=\"keyword\">from</span> __future__ <span class=\"keyword\">import</span> division</span><br><span class=\"line\"><span class=\"keyword\">from</span> __future__ <span class=\"keyword\">import</span> print_function</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"keyword\">import</span> logging</span><br><span class=\"line\">logging.basicConfig(level=logging.INFO)</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"keyword\">import</span> os</span><br><span class=\"line\"><span class=\"keyword\">import</span> shutil</span><br><span class=\"line\"><span class=\"keyword\">for</span> fn <span class=\"keyword\">in</span> [<span class=\"string\">&#x27;tf1.log&#x27;</span>, <span class=\"string\">&#x27;tf2.log&#x27;</span>]:</span><br><span class=\"line\">    <span class=\"keyword\">if</span> os.path.exists(fn):</span><br><span class=\"line\">        os.remove(fn)</span><br><span class=\"line\"></span><br><span class=\"line\">formatter = logging.Formatter(<span class=\"string\">&#x27;%(asctime)s %(name)s/%(levelname)s: %(message)s&#x27;</span>)</span><br><span class=\"line\">logger = logging.getLogger(<span class=\"string\">&#x27;double&#x27;</span>)</span><br><span class=\"line\"><span class=\"comment\"># ch2 = logging.FileHandler(&#x27;tfdouble.log&#x27;)</span></span><br><span class=\"line\">ch2 = logging.FileHandler(<span class=\"string\">&#x27;tf1.log&#x27;</span>)</span><br><span class=\"line\">ch2.setFormatter(formatter)</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"string\">&#x27;&#x27;&#x27;</span></span><br><span class=\"line\"><span class=\"string\"># http://landcareweb.com/questions/26327/ru-he-jiang-tensorflowri-zhi-ji-lu-zhong-ding-xiang-dao-wen-jian</span></span><br><span class=\"line\"><span class=\"string\"># get TF logger</span></span><br><span class=\"line\"><span class=\"string\">log = logging.getLogger(&#x27;tensorflow&#x27;)</span></span><br><span class=\"line\"><span class=\"string\">log.setLevel(logging.DEBUG)</span></span><br><span class=\"line\"><span class=\"string\"># create formatter and add it to the handlers</span></span><br><span class=\"line\"><span class=\"string\">#formatter = logging.Formatter(&#x27;%(asctime)s - %(name)s - %(levelname)s - %(message)s&#x27;)</span></span><br><span class=\"line\"><span class=\"string\"># create file handler which logs even debug messages</span></span><br><span class=\"line\"><span class=\"string\">fh = logging.FileHandler(&#x27;tensorflow.log&#x27;)</span></span><br><span class=\"line\"><span class=\"string\">fh.setLevel(logging.DEBUG)</span></span><br><span class=\"line\"><span class=\"string\">#fh.setFormatter(formatter)</span></span><br><span class=\"line\"><span class=\"string\">log.addHandler(fh)</span></span><br><span class=\"line\"><span class=\"string\">&#x27;&#x27;&#x27;</span></span><br><span class=\"line\"></span><br><span class=\"line\">tflog = logging.getLogger(<span class=\"string\">&#x27;tensorflow&#x27;</span>)</span><br><span class=\"line\">tfh = logging.FileHandler(<span class=\"string\">&#x27;tf2.log&#x27;</span>)</span><br><span class=\"line\">tfh.setLevel(logging.DEBUG)</span><br><span class=\"line\">tfm = logging.Formatter(logging.BASIC_FORMAT, <span class=\"literal\">None</span>)</span><br><span class=\"line\">tfh.setFormatter(tfm)</span><br><span class=\"line\">tflog.addHandler(tfh)</span><br><span class=\"line\"></span><br><span class=\"line\">logger.addHandler(ch2)</span><br><span class=\"line\">logger.warn(<span class=\"string\">&quot;hello&quot;</span>)</span><br><span class=\"line\">logging.critical(<span class=\"string\">&quot;critical&quot;</span>)</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"keyword\">from</span> testa <span class=\"keyword\">import</span> funcA</span><br><span class=\"line\"><span class=\"keyword\">from</span> testb <span class=\"keyword\">import</span> funcB</span><br><span class=\"line\">funcA(logger)</span><br><span class=\"line\">funcB()</span><br><span class=\"line\"><span class=\"keyword\">from</span> testb <span class=\"keyword\">import</span> funcTF</span><br><span class=\"line\">funcTF()</span><br></pre></td></tr></table></figure></li>\n</ul>\n<h3 id=\"import-modules\"><a href=\"#import-modules\" class=\"headerlink\" title=\"import modules\"></a>import modules</h3><ul>\n<li>testa.py (same as prev)<figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"comment\"># import logging</span></span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"keyword\">def</span> <span class=\"title function_\">funcA</span>(<span class=\"params\">logger</span>):</span><br><span class=\"line\">    logger.warn(<span class=\"string\">&#x27;Test A&#x27;</span>)</span><br></pre></td></tr></table></figure></li>\n<li>testb.py<figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"keyword\">import</span> logging</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"keyword\">def</span> <span class=\"title function_\">funcB</span>():</span><br><span class=\"line\">    logging.warn(<span class=\"string\">&quot;Warn, hello&quot;</span>)</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"keyword\">import</span> os</span><br><span class=\"line\">os.environ[<span class=\"string\">&quot;CUDA_VISIBLE_DEVICES&quot;</span>] = <span class=\"string\">&quot;-1&quot;</span></span><br><span class=\"line\"><span class=\"keyword\">import</span> tensorflow <span class=\"keyword\">as</span> tf</span><br><span class=\"line\"><span class=\"comment\"># 禁用 GPU</span></span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"keyword\">def</span> <span class=\"title function_\">funcTF</span>():</span><br><span class=\"line\">    <span class=\"comment\"># tf.logging.ERROR(&quot;tf._logging.ERROR&quot;)  # 1.14.0</span></span><br><span class=\"line\">    tf.compat.v1.logging.info(<span class=\"string\">&quot;tf.logging.info&quot;</span>)</span><br><span class=\"line\">    tf.compat.v1.logging.error(<span class=\"string\">&quot;tf.logging.error&quot;</span>)</span><br></pre></td></tr></table></figure></li>\n</ul>\n<h3 id=\"Results\"><a href=\"#Results\" class=\"headerlink\" title=\"Results\"></a>Results</h3><ul>\n<li>tf1.log<figure class=\"highlight txt\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">2020-04-16 04:29:34,398 double/WARNING: hello</span><br><span class=\"line\">2020-04-16 04:29:39,795 double/WARNING: Test A</span><br><span class=\"line\"></span><br></pre></td></tr></table></figure></li>\n<li>tf2.log<figure class=\"highlight txt\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">INFO:tensorflow:tf.logging.info</span><br><span class=\"line\">ERROR:tensorflow:tf.logging.error</span><br><span class=\"line\"></span><br></pre></td></tr></table></figure></li>\n</ul>\n","categories":["Coding"],"tags":["Commands","Python","Notes"]},{"title":"Git, Markdown, Linux, Vim 常用命令汇总","url":"https://eustomaqua.github.io/2018/2018-07-08-Git-Markdown-Linux-Vim/","content":"<link rel=\"stylesheet\" class=\"aplayer-secondary-style-marker\" href=\"/assets/css/APlayer.min.css\"><script src=\"/assets/js/APlayer.min.js\" class=\"aplayer-secondary-script-marker\"></script><h1 id=\"Git-GitHub\"><a href=\"#Git-GitHub\" class=\"headerlink\" title=\"Git &amp; GitHub\"></a>Git &amp; GitHub</h1><h2 id=\"问题汇总\"><a href=\"#问题汇总\" class=\"headerlink\" title=\"问题汇总\"></a>问题汇总</h2><p>### <strong>git 为不同的项目设置不同的用户名</strong> </p>\n<p>ref: <a href=\"https://blog.csdn.net/xiaoliu665114/article/details/66969957\">git为不同的项目设置不同的用户名</a></p>\n<p>不能采用通用配置时，就要单独设置每个项目的 git 配置。</p>\n<p>(a). 每个 git 项目下都会有一个隐藏的 .git 文件夹 ，<br>将终端的工作目录设置到相应的项目根目录下，执行 ls -a 命令，显示所有文件，即可看到 .git 的隐藏文件夹。<br>通过 cd .git 进入该目录，发现该目录下有个 config 文件，采用 open config 命令打开，添加如下配置：  </p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">[user]</span><br><span class=\"line\">    name = XXX(自己的名称英文)</span><br><span class=\"line\">    email = XXXX(邮箱)</span><br></pre></td></tr></table></figure>\n<p>保存，command+s 即可。<br>这时候就为该项目配置了独立的用户名和邮箱。提交代码时，提交日志上显示的就是设置的名称，当然 github 这种会根据设置的邮箱来设置对应的用户名。</p>\n<p>(b). 通过命令行的方式 (即要去掉 –global 参数) 去设置单独的 git 配置，只需要在 .git 文件夹下。 例如执行如下命令，就可以修改当前项目提交代码时用到的用户名。  </p>\n<figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">git  config  user.name  &quot;xxxxx&quot;</span><br></pre></td></tr></table></figure>\n\n<p>如果全局的配置和当前项目的单独配置中出现相同的配置选项，比如全局和项目都设置了 user.name ，那么在该项目中进行 git 操作时，会默认采用该项目配置的用户名。</p>\n<p>### <strong>^X 离开</strong></p>\n<p>ref: <a href=\"https://blog.csdn.net/YQXLLWY/article/details/55214943\">sudo 简介</a></p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">$ git commit -a</span><br></pre></td></tr></table></figure>\n<p>出现问题，该界面无法离开<br><img src=\"/images/2018-07/09_git_commit_a.png\"></p>\n<p>这些命令的执行方式是：Esc，然后命令中的 ^ 代表 Alt，如离开 ^X ，就需要依次按 Esc, Alt x ，这样才会退出，有点像 vim。</p>\n<p>### <strong>next</strong></p>\n<h2 id=\"常用-Git-命令清单\"><a href=\"#常用-Git-命令清单\" class=\"headerlink\" title=\"常用 Git 命令清单\"></a>常用 Git 命令清单</h2><p>ref: <a href=\"http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html\">常用 Git 命令清单</a></p>\n<p>日常使用的 6 个命令<br><img src=\"http://www.ruanyifeng.com/blogimg/asset/2015/bg2015120901.png\" alt=\"git\"></p>\n<p>专有名词：  </p>\n<ul>\n<li>Workspace：工作区  </li>\n<li>Index &#x2F; Stage：暂存区  </li>\n<li>Repository：仓库区（或本地仓库）  </li>\n<li>Remote：远程仓库</li>\n</ul>\n<h3 id=\"一、新建代码库\"><a href=\"#一、新建代码库\" class=\"headerlink\" title=\"一、新建代码库\"></a>一、新建代码库</h3><figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"comment\"># 在当前目录新建一个Git代码库</span></span><br><span class=\"line\">$ git init</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 新建一个目录，将其初始化为Git代码库</span></span><br><span class=\"line\">$ git init [project-name]</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 下载一个项目和它的整个代码历史</span></span><br><span class=\"line\">$ git <span class=\"built_in\">clone</span> [url]</span><br></pre></td></tr></table></figure>\n\n<h3 id=\"二、配置\"><a href=\"#二、配置\" class=\"headerlink\" title=\"二、配置\"></a>二、配置</h3><p>Git 的设置文件为 .gitconfig ，它可以在用户主目录下（全局配置），也可以在项目目录下（项目配置）。  </p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"comment\"># 显示当前的Git配置</span></span><br><span class=\"line\">$ git config --list</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 编辑Git配置文件</span></span><br><span class=\"line\">$ git config -e [--global]</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 设置提交代码时的用户信息</span></span><br><span class=\"line\">$ git config [--global] user.name <span class=\"string\">&quot;[name]&quot;</span></span><br><span class=\"line\">$ git config [--global] user.email <span class=\"string\">&quot;[email address]&quot;</span></span><br></pre></td></tr></table></figure>\n\n<h3 id=\"三、增加-删除文件\"><a href=\"#三、增加-删除文件\" class=\"headerlink\" title=\"三、增加&#x2F;删除文件\"></a>三、增加&#x2F;删除文件</h3><figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"comment\"># 添加指定文件到暂存区</span></span><br><span class=\"line\">$ git add [file1] [file2] ...</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 添加指定目录到暂存区，包括子目录</span></span><br><span class=\"line\">$ git add [<span class=\"built_in\">dir</span>]</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 添加当前目录的所有文件到暂存区</span></span><br><span class=\"line\">$ git add .</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 添加每个变化前，都会要求确认</span></span><br><span class=\"line\"><span class=\"comment\"># 对于同一个文件的多处变化，可以实现分次提交</span></span><br><span class=\"line\">$ git add -p</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 删除工作区文件，并且将这次删除放入暂存区</span></span><br><span class=\"line\">$ git <span class=\"built_in\">rm</span> [file1] [file2] ...</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 停止追踪指定文件，但该文件会保留在工作区</span></span><br><span class=\"line\">$ git <span class=\"built_in\">rm</span> --cached [file]</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 改名文件，并且将这个改名放入暂存区</span></span><br><span class=\"line\">$ git <span class=\"built_in\">mv</span> [file-original] [file-renamed]</span><br></pre></td></tr></table></figure>\n\n<h3 id=\"四、代码提交\"><a href=\"#四、代码提交\" class=\"headerlink\" title=\"四、代码提交\"></a>四、代码提交</h3><figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"comment\"># 提交暂存区到仓库区</span></span><br><span class=\"line\">$ git commit -m [message]</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 提交暂存区的指定文件到仓库区</span></span><br><span class=\"line\">$ git commit [file1] [file2] ... -m [message]</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 提交工作区自上次commit之后的变化，直接到仓库区</span></span><br><span class=\"line\">$ git commit -a</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 提交时显示所有diff信息</span></span><br><span class=\"line\">$ git commit -v</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 使用一次新的commit，替代上一次提交</span></span><br><span class=\"line\"><span class=\"comment\"># 如果代码没有任何新变化，则用来改写上一次commit的提交信息</span></span><br><span class=\"line\">$ git commit --amend -m [message]</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 重做上一次commit，并包括指定文件的新变化</span></span><br><span class=\"line\">$ git commit --amend [file1] [file2] ...</span><br></pre></td></tr></table></figure>\n\n<h3 id=\"五、分支\"><a href=\"#五、分支\" class=\"headerlink\" title=\"五、分支\"></a>五、分支</h3><figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br><span class=\"line\">39</span><br><span class=\"line\">40</span><br><span class=\"line\">41</span><br><span class=\"line\">42</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"meta prompt_\"># </span><span class=\"language-bash\">列出所有本地分支</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">git branch</span></span><br><span class=\"line\"><span class=\"meta prompt_\"></span></span><br><span class=\"line\"><span class=\"meta prompt_\"># </span><span class=\"language-bash\">列出所有远程分支</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">git branch -r</span></span><br><span class=\"line\"><span class=\"meta prompt_\"></span></span><br><span class=\"line\"><span class=\"meta prompt_\"># </span><span class=\"language-bash\">列出所有本地分支和远程分支</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">git branch -a</span></span><br><span class=\"line\"><span class=\"meta prompt_\"></span></span><br><span class=\"line\"><span class=\"meta prompt_\"># </span><span class=\"language-bash\">新建一个分支，但依然停留在当前分支</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">git branch [branch-name]</span></span><br><span class=\"line\"><span class=\"meta prompt_\"></span></span><br><span class=\"line\"><span class=\"meta prompt_\"># </span><span class=\"language-bash\">新建一个分支，并切换到该分支</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">git checkout -b [branch]</span></span><br><span class=\"line\"><span class=\"meta prompt_\"></span></span><br><span class=\"line\"><span class=\"meta prompt_\"># </span><span class=\"language-bash\">新建一个分支，指向指定commit</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">git branch [branch] [commit]</span></span><br><span class=\"line\"><span class=\"meta prompt_\"></span></span><br><span class=\"line\"><span class=\"meta prompt_\"># </span><span class=\"language-bash\">新建一个分支，与指定的远程分支建立追踪关系</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">git branch --track [branch] [remote-branch]</span></span><br><span class=\"line\"><span class=\"meta prompt_\"></span></span><br><span class=\"line\"><span class=\"meta prompt_\"># </span><span class=\"language-bash\">切换到指定分支，并更新工作区</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">git checkout [branch-name]</span></span><br><span class=\"line\"><span class=\"meta prompt_\"></span></span><br><span class=\"line\"><span class=\"meta prompt_\"># </span><span class=\"language-bash\">切换到上一个分支</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">git checkout -</span></span><br><span class=\"line\"><span class=\"meta prompt_\"></span></span><br><span class=\"line\"><span class=\"meta prompt_\"># </span><span class=\"language-bash\">建立追踪关系，在现有分支与指定的远程分支之间</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">git branch --set-upstream [branch] [remote-branch]</span></span><br><span class=\"line\"><span class=\"meta prompt_\"></span></span><br><span class=\"line\"><span class=\"meta prompt_\"># </span><span class=\"language-bash\">合并指定分支到当前分支</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">git merge [branch]</span></span><br><span class=\"line\"><span class=\"meta prompt_\"></span></span><br><span class=\"line\"><span class=\"meta prompt_\"># </span><span class=\"language-bash\">选择一个commit，合并进当前分支</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">git cherry-pick [commit]</span></span><br><span class=\"line\"><span class=\"meta prompt_\"></span></span><br><span class=\"line\"><span class=\"meta prompt_\"># </span><span class=\"language-bash\">删除分支</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">git branch -d [branch-name]</span></span><br><span class=\"line\"><span class=\"meta prompt_\"></span></span><br><span class=\"line\"><span class=\"meta prompt_\"># </span><span class=\"language-bash\">删除远程分支</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">git push origin --delete [branch-name]</span></span><br><span class=\"line\"><span class=\"meta prompt_\">$ </span><span class=\"language-bash\">git branch -dr [remote/branch]</span></span><br></pre></td></tr></table></figure>\n\n<h3 id=\"六、标签\"><a href=\"#六、标签\" class=\"headerlink\" title=\"六、标签\"></a>六、标签</h3><figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"comment\"># 列出所有tag</span></span><br><span class=\"line\">$ git tag</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 新建一个tag在当前commit</span></span><br><span class=\"line\">$ git tag [tag]</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 新建一个tag在指定commit</span></span><br><span class=\"line\">$ git tag [tag] [commit]</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 删除本地tag</span></span><br><span class=\"line\">$ git tag -d [tag]</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 删除远程tag</span></span><br><span class=\"line\">$ git push origin :refs/tags/[tagName]</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 查看tag信息</span></span><br><span class=\"line\">$ git show [tag]</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 提交指定tag</span></span><br><span class=\"line\">$ git push [remote] [tag]</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 提交所有tag</span></span><br><span class=\"line\">$ git push [remote] --tags</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 新建一个分支，指向某个tag</span></span><br><span class=\"line\">$ git checkout -b [branch] [tag]</span><br></pre></td></tr></table></figure>\n\n<h3 id=\"七、查看信息\"><a href=\"#七、查看信息\" class=\"headerlink\" title=\"七、查看信息\"></a>七、查看信息</h3><figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br><span class=\"line\">32</span><br><span class=\"line\">33</span><br><span class=\"line\">34</span><br><span class=\"line\">35</span><br><span class=\"line\">36</span><br><span class=\"line\">37</span><br><span class=\"line\">38</span><br><span class=\"line\">39</span><br><span class=\"line\">40</span><br><span class=\"line\">41</span><br><span class=\"line\">42</span><br><span class=\"line\">43</span><br><span class=\"line\">44</span><br><span class=\"line\">45</span><br><span class=\"line\">46</span><br><span class=\"line\">47</span><br><span class=\"line\">48</span><br><span class=\"line\">49</span><br><span class=\"line\">50</span><br><span class=\"line\">51</span><br><span class=\"line\">52</span><br><span class=\"line\">53</span><br><span class=\"line\">54</span><br><span class=\"line\">55</span><br><span class=\"line\">56</span><br><span class=\"line\">57</span><br><span class=\"line\">58</span><br><span class=\"line\">59</span><br><span class=\"line\">60</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"comment\"># 显示有变更的文件</span></span><br><span class=\"line\">$ git status</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 显示当前分支的版本历史</span></span><br><span class=\"line\">$ git <span class=\"built_in\">log</span></span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 显示commit历史，以及每次commit发生变更的文件</span></span><br><span class=\"line\">$ git <span class=\"built_in\">log</span> --<span class=\"built_in\">stat</span></span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 搜索提交历史，根据关键词</span></span><br><span class=\"line\">$ git <span class=\"built_in\">log</span> -S [keyword]</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 显示某个commit之后的所有变动，每个commit占据一行</span></span><br><span class=\"line\">$ git <span class=\"built_in\">log</span> [tag] HEAD --pretty=format:%s</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 显示某个commit之后的所有变动，其&quot;提交说明&quot;必须符合搜索条件</span></span><br><span class=\"line\">$ git <span class=\"built_in\">log</span> [tag] HEAD --grep feature</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 显示某个文件的版本历史，包括文件改名</span></span><br><span class=\"line\">$ git <span class=\"built_in\">log</span> --follow [file]</span><br><span class=\"line\">$ git whatchanged [file]</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 显示指定文件相关的每一次diff</span></span><br><span class=\"line\">$ git <span class=\"built_in\">log</span> -p [file]</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 显示过去5次提交</span></span><br><span class=\"line\">$ git <span class=\"built_in\">log</span> -5 --pretty --oneline</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 显示所有提交过的用户，按提交次数排序</span></span><br><span class=\"line\">$ git shortlog -sn</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 显示指定文件是什么人在什么时间修改过</span></span><br><span class=\"line\">$ git blame [file]</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 显示暂存区和工作区的差异</span></span><br><span class=\"line\">$ git diff</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 显示暂存区和上一个commit的差异</span></span><br><span class=\"line\">$ git diff --cached [file]</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 显示工作区与当前分支最新commit之间的差异</span></span><br><span class=\"line\">$ git diff HEAD</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 显示两次提交之间的差异</span></span><br><span class=\"line\">$ git diff [first-branch]...[second-branch]</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 显示今天你写了多少行代码</span></span><br><span class=\"line\">$ git diff --shortstat <span class=\"string\">&quot;@&#123;0 day ago&#125;&quot;</span></span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 显示某次提交的元数据和内容变化</span></span><br><span class=\"line\">$ git show [commit]</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 显示某次提交发生变化的文件</span></span><br><span class=\"line\">$ git show --name-only [commit]</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 显示某次提交时，某个文件的内容</span></span><br><span class=\"line\">$ git show [commit]:[filename]</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 显示当前分支的最近几次提交</span></span><br><span class=\"line\">$ git reflog</span><br></pre></td></tr></table></figure>\n\n<h3 id=\"八、远程同步\"><a href=\"#八、远程同步\" class=\"headerlink\" title=\"八、远程同步\"></a>八、远程同步</h3><figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"comment\"># 下载远程仓库的所有变动</span></span><br><span class=\"line\">$ git fetch [remote]</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 显示所有远程仓库</span></span><br><span class=\"line\">$ git remote -v</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 显示某个远程仓库的信息</span></span><br><span class=\"line\">$ git remote show [remote]</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 增加一个新的远程仓库，并命名</span></span><br><span class=\"line\">$ git remote add [shortname] [url]</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 取回远程仓库的变化，并与本地分支合并</span></span><br><span class=\"line\">$ git pull [remote] [branch]</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 上传本地指定分支到远程仓库</span></span><br><span class=\"line\">$ git push [remote] [branch]</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 强行推送当前分支到远程仓库，即使有冲突</span></span><br><span class=\"line\">$ git push [remote] --force</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 推送所有分支到远程仓库</span></span><br><span class=\"line\">$ git push [remote] --all</span><br></pre></td></tr></table></figure>\n\n<h3 id=\"九、撤销\"><a href=\"#九、撤销\" class=\"headerlink\" title=\"九、撤销\"></a>九、撤销</h3><figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br><span class=\"line\">22</span><br><span class=\"line\">23</span><br><span class=\"line\">24</span><br><span class=\"line\">25</span><br><span class=\"line\">26</span><br><span class=\"line\">27</span><br><span class=\"line\">28</span><br><span class=\"line\">29</span><br><span class=\"line\">30</span><br><span class=\"line\">31</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"comment\"># 恢复暂存区的指定文件到工作区</span></span><br><span class=\"line\">$ git checkout [file]</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 恢复某个commit的指定文件到暂存区和工作区</span></span><br><span class=\"line\">$ git checkout [commit] [file]</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 恢复暂存区的所有文件到工作区</span></span><br><span class=\"line\">$ git checkout .</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 重置暂存区的指定文件，与上一次commit保持一致，但工作区不变</span></span><br><span class=\"line\">$ git reset [file]</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 重置暂存区与工作区，与上一次commit保持一致</span></span><br><span class=\"line\">$ git reset --hard</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 重置当前分支的指针为指定commit，同时重置暂存区，但工作区不变</span></span><br><span class=\"line\">$ git reset [commit]</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 重置当前分支的HEAD为指定commit，同时重置暂存区和工作区，与指定commit一致</span></span><br><span class=\"line\">$ git reset --hard [commit]</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 重置当前HEAD为指定commit，但保持暂存区和工作区不变</span></span><br><span class=\"line\">$ git reset --keep [commit]</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 新建一个commit，用来撤销指定commit</span></span><br><span class=\"line\"><span class=\"comment\"># 后者的所有变化都将被前者抵消，并且应用到当前分支</span></span><br><span class=\"line\">$ git revert [commit]</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\"># 暂时将未提交的变化移除，稍后再移入</span></span><br><span class=\"line\">$ git stash</span><br><span class=\"line\">$ git stash pop</span><br></pre></td></tr></table></figure>\n\n<h3 id=\"十、其他\"><a href=\"#十、其他\" class=\"headerlink\" title=\"十、其他\"></a>十、其他</h3><figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"comment\"># 生成一个可供发布的压缩包</span></span><br><span class=\"line\">$ git archive</span><br></pre></td></tr></table></figure>\n\n\n\n\n\n\n\n\n<h1 id=\"Markdown\"><a href=\"#Markdown\" class=\"headerlink\" title=\"Markdown\"></a>Markdown</h1><p><strong>编辑器</strong><br><a href=\"https://atom.io/\">Atom</a><br><a href=\"http://25.io/mou/\">Mou</a><br><a href=\"https://typora.io/\">typora</a></p>\n<p><strong>png 图片在线压缩</strong><br><a href=\"https://compresspng.com/zh/\">PNG压缩</a><br><a href=\"https://www.iloveimg.com/zh-cn/resize-image\">调整单个图像文件</a><br><a href=\"https://www.yasuotu.com/png\">压缩图</a></p>\n<h2 id=\"基本语法\"><a href=\"#基本语法\" class=\"headerlink\" title=\"基本语法\"></a>基本语法</h2><p>参考<br><a href=\"http://einverne.github.io/markdown-style-guide/zh.html\">Markdown 书写风格指南</a><br><a href=\"http://xianbai.me/learn-md/article/extension/code-blocks-and-highlighting.html\">Intro to Markdown, 代码块和语法高亮</a><br><a href=\"https://sspai.com/post/37271\">Markdown 书写建议</a></p>\n<p>### <strong>通用规则</strong></p>\n<p>文件名建议使用如下的风格:  </p>\n<ul>\n<li>用小写代替大写  </li>\n<li>把开头 the, a, an 除去  </li>\n<li>用连字符代替标点和空格  </li>\n<li>用一个连字符代替连续多个连字符，当多个连字符出现时，只使用一个  </li>\n<li>不在文件名前后使用连字符</li>\n</ul>\n<p>引用：在符号 &gt; 后面接一个空格。不要在单独的引用中使用空行。<br>列表：<br>(1) 无序使用连字符 “-“，不建议使用 “*“ (可能和加粗和斜体符号产生混淆) 和 “+” (不流行)<br>(2) 有序尽量选用 “1.”，除非打算通过数字在相同 Markdown 文件或者外部文件中引用他们。<br>(3) 尽量使用无序列表，除非有通过数字引用的需求。最佳则是从来不通过符号来引用它们。  </p>\n<p>### <strong>常用语法</strong></p>\n<p>(1) 段落与换行<br>段落前后：空行，即行内什么都没有或只有空白符 (空格或制表符)<br>段落内加入换行 (&lt;br&gt;): 可在前一行末尾加入至少两个空格，然后换行写其它文字<br>Markdown 中的多数区块都需要在两个空行之间。</p>\n<p>(2) 标题<br>Setext 形式 (多个 &#x3D; 或 -，分别支持 h1,h2 两种标题)<br>atx 形式 (#: 对称形式，或只在左边使用)，注意 # 左侧不可有任何空白，内侧可以</p>\n<p>(3) 引用<br>引用内容：段落或内容前使用 &gt; 符号<br>多行引用：每行前加，或仅在第一行使用 (后面相邻行可省略)；如需换行，可行尾添加两个空格，或在引用内容中加一个空行<br>嵌套使用：</p>\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">&gt;也可以在引用中</span><br><span class=\"line\">&gt;&gt;使用嵌套的引用</span><br></pre></td></tr></table></figure>\n<p>其他 Markdown：引用中可使用其他任何 Markdown 语法</p>\n<p>(4) 列表<br>无序列表项的开始：符号(‘*‘, ‘+‘, 或 ‘-‘) 空格；<br>有序列表项的开始：数字 . 空格；<br>空格至少为一个，多个空格将被解析为一个，如果仅需要在行前显示数字和 ‘.’ ：  </p>\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">05\\. 可以使用：数字\\. 来取消显示为列表</span><br></pre></td></tr></table></figure>\n<p>嵌套的列表：</p>\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"bullet\">1.</span> 第一层</span><br><span class=\"line\"><span class=\"bullet\">  +</span> 1-1</span><br><span class=\"line\"><span class=\"bullet\">  +</span> 1-2</span><br></pre></td></tr></table></figure>\n<blockquote>\n<p>* 的语法专门用来显示 Markdown 语法中使用的特殊字符，参考 <a href=\"http://xianbai.me/learn-md/article/syntax/blackslash-escapes.html\">字符转义</a></p>\n</blockquote>\n<p>(5) 代码  </p>\n<p>(6) 分隔线<br>一行内使用三个或更多，增加分隔线 (&lt;hr&gt;)  </p>\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"section\"><span class=\"strong\">***</span></span></span><br><span class=\"line\"><span class=\"strong\"><span class=\"section\">------</span></span></span><br><span class=\"line\"><span class=\"strong\"><span class=\"section\">___ \t//下划线</span></span></span><br></pre></td></tr></table></figure>\n<p>多个字符之间可以有空格 (空白符)，但不能有其他字符  </p>\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"bullet\">*</span> * *</span><br><span class=\"line\"><span class=\"bullet\">-</span> - -</span><br></pre></td></tr></table></figure>\n\n<p>(7) 超链接<br>行内式：title 可以使用 ‘ 或 “  </p>\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">[<span class=\"string\">title text</span>](<span class=\"link\">URL &#x27;link text&#x27;</span>)</span><br></pre></td></tr></table></figure>\n<p>参考式：(1) 能尽量保持文章结构的简单，也方便统一管理 URL； (2) 优点：可以在多个不同的位置引用同一个 URL  </p>\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">[<span class=\"string\">Google</span>][<span class=\"symbol\">link</span>]</span><br><span class=\"line\">[<span class=\"symbol\">link</span>]: <span class=\"link\">http://www.google.com/ &quot;Google&quot;</span></span><br><span class=\"line\">识别符可以是字母、数字、空白或标点符号，不区分大小写</span><br><span class=\"line\">格式：  [识别符]: URL &#x27;title&#x27;</span><br><span class=\"line\"></span><br><span class=\"line\">[<span class=\"string\">Google</span>][<span class=\"symbol\"></span>]</span><br><span class=\"line\">[<span class=\"symbol\">Google</span>]: <span class=\"link\">http://scholar.google.com/ &quot;Google&quot;</span></span><br><span class=\"line\">省略识别符，使用链接文本作为识别符</span><br></pre></td></tr></table></figure>\n<p>自动链接：适合行内较短的链接，会使用 URL 作为链接文字。邮箱地址会自动编码，以逃避抓取机器人。</p>\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"language-xml\">&lt;http://www.google.com/&gt;</span></span><br><span class=\"line\">&lt;123@email.com&gt;</span><br></pre></td></tr></table></figure>\n\n<p>(8) 图片  </p>\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">![<span class=\"string\">Name</span>](<span class=\"link\">https://...</span>)</span><br></pre></td></tr></table></figure>\n<p>同插入超链接的语法基本一致，也分行内式和参考式两种  </p>\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">![<span class=\"string\">GitHub</span>](<span class=\"link\">https://avatars2.githubusercontent.com/u/3265208?v=3&amp;s=100 &quot;GitHub,Social Coding&quot;</span>)</span><br><span class=\"line\">方括号中的部分是图片的替代文本，括号中的 &#x27;title&#x27; 部分和链接一样，是可选的。</span><br><span class=\"line\"></span><br><span class=\"line\">![<span class=\"string\">GitHub</span>][<span class=\"symbol\">github</span>]</span><br><span class=\"line\">[<span class=\"symbol\">github</span>]: <span class=\"link\">https://avatars2.githubusercontent.com/u/3265208?v=3&amp;s=100 &quot;GitHub,Social Coding&quot;</span></span><br></pre></td></tr></table></figure>\n<p>指定图片的显示大小  </p>\n<figure class=\"highlight html\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">Markdown 不支持指定图片的显示大小，不过可以通过直接插入<span class=\"tag\">&lt;<span class=\"name\">img</span> /&gt;</span>标签来指定相关属性：</span><br><span class=\"line\"><span class=\"tag\">&lt;<span class=\"name\">img</span> <span class=\"attr\">src</span>=<span class=\"string\">&quot;https://avatars2.githubusercontent.com/u/3265208?v=3&amp;s=100&quot;</span> <span class=\"attr\">alt</span>=<span class=\"string\">&quot;GitHub&quot;</span> <span class=\"attr\">title</span>=<span class=\"string\">&quot;GitHub,Social Coding&quot;</span> <span class=\"attr\">width</span>=<span class=\"string\">&quot;50&quot;</span> <span class=\"attr\">height</span>=<span class=\"string\">&quot;50&quot;</span> /&gt;</span></span><br></pre></td></tr></table></figure>\n\n<p>(9) 强调<br><em>斜体</em>    <strong>粗体</strong>    <em><strong>强调</strong></em>  </p>\n<p>(10) 字符转义  </p>\n<p>### <strong>扩展语法</strong></p>\n<p>(1) 删除线</p>\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">这就是 \\~~删除线\\~~</span><br><span class=\"line\">这就是 ~~删除线~~</span><br></pre></td></tr></table></figure>\n<p>这就是 <del>删除线</del></p>\n<p>(2) 代码块和语法高亮</p>\n<p>(3) 表格 和对齐</p>\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">|    name    | age |</span><br><span class=\"line\">| ---------- | --- |</span><br><span class=\"line\">| LearnShare |  12 |</span><br><span class=\"line\">| Mike       |  32 |</span><br><span class=\"line\"></span><br><span class=\"line\">| left | center | right |</span><br><span class=\"line\">| :--- | :----: | ----: |</span><br><span class=\"line\">| aaaa | bbbbbb | ccccc |</span><br><span class=\"line\">| a    | b      | c     |</span><br></pre></td></tr></table></figure>\n\n<p>(4) Task List</p>\n<figure class=\"highlight markdown\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"bullet\">-</span> [ ] Eat</span><br><span class=\"line\"><span class=\"bullet\">-</span> [x] Code</span><br><span class=\"line\"><span class=\"bullet\">  -</span> [x] HTML</span><br><span class=\"line\"><span class=\"bullet\">  -</span> [x] CSS</span><br><span class=\"line\"><span class=\"bullet\">  -</span> [x] JavaScript</span><br><span class=\"line\"><span class=\"bullet\">-</span> [ ] Sleep</span><br></pre></td></tr></table></figure>\n\n\n\n\n\n<h2 id=\"常见问题\"><a href=\"#常见问题\" class=\"headerlink\" title=\"常见问题\"></a>常见问题</h2><p>### <strong>代码块加入行号和支持语言</strong></p>\n<p>加入行号只需用三个 “&#96;” 框入即可</p>\n<p><a href=\"https://www.jianshu.com/p/aaad9a3f619b\">前端：给你的 Markdown 文章添加代码高亮及行号</a><br><a href=\"https://blog.bluerain.io/p/markdown-code-block-line-number.html\">重构 Markdown 代码块文档结构以支持行号显示</a><br><a href=\"http://www.dongye.tk/2014/10/11/markdown-intro/\">Markdown 入门</a></p>\n<p><a href=\"https://www.jianshu.com/p/f02d5a3736ba\">Markdown代码高亮支持的语言</a><br><a href=\"http://www.cnblogs.com/qyf404/p/5019631.html\">markdown代码块支持的语言</a></p>\n<p>### <strong>显示 bash&#x2F;shell 代码</strong></p>\n<p>ref: <a href=\"https://codeday.me/bug/20170706/34249.html\">在 markdown 中突出显示 bash&#x2F;shell 代码</a></p>\n<p>取决于 markdown 渲染引擎和 markdown 的味道。没有标准。如果你的意思是 github flavored markdown 例如，shell 应该工作正常。别名是 sh，bash 或 zsh。您可以找到可用的语法词法列表 <a href=\"https://github.com/github/linguist/blob/master/lib/linguist/languages.yml\">here</a></p>\n<p>### <strong>显示 颜色块</strong></p>\n<p>ref:<br><a href=\"https://www.zhihu.com/question/22504694\">为什么 markdown 不支持字号和字体颜色？</a><br><a href=\"https://blog.csdn.net/u010177286/article/details/50358720\">Markdown 使用技巧总结</a>  </p>\n<figure class=\"highlight html\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"tag\">&lt;<span class=\"name\">font</span> <span class=\"attr\">color</span>=<span class=\"string\">red</span>&gt;</span>内容<span class=\"tag\">&lt;/<span class=\"name\">font</span>&gt;</span></span><br><span class=\"line\"><span class=\"tag\">&lt;<span class=\"name\">table</span>&gt;</span><span class=\"tag\">&lt;<span class=\"name\">tr</span>&gt;</span><span class=\"tag\">&lt;<span class=\"name\">td</span> <span class=\"attr\">bgcolor</span>=<span class=\"string\">orange</span>&gt;</span>背景色是：orange<span class=\"tag\">&lt;/<span class=\"name\">td</span>&gt;</span><span class=\"tag\">&lt;/<span class=\"name\">tr</span>&gt;</span><span class=\"tag\">&lt;/<span class=\"name\">table</span>&gt;</span></span><br></pre></td></tr></table></figure>\n<p>但是字体颜色和颜色块都显示不出来</p>\n<h1 id=\"Linux\"><a href=\"#Linux\" class=\"headerlink\" title=\"Linux\"></a>Linux</h1><ul>\n<li>参考手册：Linux 命令大全  </li>\n<li>Linux 教程  </li>\n<li>Shell 教程</li>\n</ul>\n<p>ref: <a href=\"http://www.runoob.com/linux/linux-command-manual.html\">Linux 命令大全</a></p>\n<h2 id=\"文件\"><a href=\"#文件\" class=\"headerlink\" title=\"文件\"></a>文件</h2><p>### <strong>1、文件管理</strong></p>\n<p>cat 命令用于连接文件并打印到标准输出设备上。<br>Linux&#x2F;Unix 的文件调用权限分为三级 : 文件拥有者、群组、其他。利用 chmod 可以藉以控制文件如何被他人所调用。<br>chown 将指定文件的拥有者改为指定的用户或组。使用权限是 root。<br>locate 命令用于查找符合条件的文档，它会去保存文档和目录名称的数据库内，查找合乎范本样式条件的文档或目录。<br>cp 命令主要用于复制文件或目录。<br>mv 命令用来为文件或目录改名、或将文件或目录移入其它位置。<br>rm 命令用于删除一个文件或者目录。<br>which 命令用于查找文件。该指令会在环境变量 $PATH 设置的目录里查找符合条件的文件。<br>whereis 命令用于查找文件。该指令会在特定目录中查找符合条件的文件。这些文件应属于原始代码、二进制文件，或是帮助文件。该指令只能用于查找二进制文件、源代码文件和 man 手册页，一般文件的定位需使用 locate 命令。<br>rcp 命令用于复制远程文件或目录。rcp 指令用在远端复制文件或目录，如同时指定两个以上的文件或目录，且最后的目的地是一个已经存在的目录，则它会把前面指定的所有文件或目录复制到该目录中。<br>scp 命令用于 Linux 之间复制文件和目录。scp 是 secure copy的缩写,scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。  </p>\n<p>cmp 命令用于比较两个文件是否有差异。<br>cut 命令用于显示每行从开头算起 num1 到 num2 的文字。<br>diff 命令用于比较文件的差异。逐行比较文本异同，如指定比较目录，则比较相同文件名的文件，但不比较其中的子目录。<br>diffstat 命令根据diff的比较结果，显示统计数字。<br>file 命令用于辨识文件类型。<br>find 命令用来在指定目录下查找文件。如不指定参数，则在当前目录下查找子目录与文件。<br>git 命令是文字模式下的文件管理员。<br>less 与 more 类似，但使用 less 可以随意浏览文件，而 more 仅能向前移动，却不能向后移动，而且 less 在查看之前不会加载整个文件。<br>more 命令类似 cat ，不过会以一页一页的形式显示，更方便使用者逐页阅读，而最基本的指令就是按空白键（space）就往下一页显示，按 b 键就会往回（back）一页显示，而且还有搜寻字串的功能（与 vi 相似），使用中的说明文件，请按 h 。<br>od 命令用于输出文件内容。它读取所给予的文件的内容，并将其内容以八进制字码呈现出来。<br>paste 命令用于合并文件的列。<br>patch 命令用于修补文件。<br>touch 命令用于修改文件或者目录的时间属性，包括存取时间和更改时间。若文件不存在，系统会建立一个新的文件。 ls -l 可以显示档案的时间记录。<br>slocate 命令查找文件或目录，本身有一个数据库，里面存放了系统中文件与目录的相关信息。<br>split 命令用于将大文件分割成较小的文件，在默认情况下按照每 1000 行切割。<br>tee 命令用于读取标准输入的数据，并将内容输出到标准输出设备，同时保存成文件。<br>read  命令用于从标准输入读取数值。  </p>\n<p>### <strong>2、文档编辑</strong></p>\n<p>grep 命令用于查找文件里符合条件的字符串。<br>egrep 命令用于在文件内查找指定的字符串。其表达比 grep 更规范。<br>rgrep 命令用于递归查找文件里符合条件的字符串。<br>sort 命令用于将文本文件内容加以排序。可针对文本文件的内容，以行为单位来排序。  </p>\n<p>join 命令用于将两个文件中，指定栏位内容相同的行连接起来。<br>look 命令用于查询单词。<br>spell 命令可建立拼写检查程序。可从标准输入设备读取字符串，结束后显示拼错的词汇。<br>uniq 命令用于检查及删除文本文件中重复出现的行列。<br>let 命令是 BASH 中用于计算的工具，用于执行一个或多个表达式，变量计算中不需要加上 $ 来表示变量。如果表达式中包含了空格或其他特殊字符，则必须引起来。<br>wc命令用于计算字数。可以计算文件的 Byte 数、字数、或是列数，若不指定文件名称、或是所给予的文件名为”-“，则 wc 指令会从标准输入设备读取数据。  </p>\n<p>### <strong>3、文件传输</strong></p>\n<p>ftp 命令设置文件系统相关功能。FTP 是 ARPANet 的标准文件传输协议，该网络就是现今 Internet 的前身。<br>bye 命令用于中断 FTP 连线并结束程序。在 ftp 模式下，输入 bye 即可中断目前的连线作业，并结束 ftp 的执行。<br>tftp 命令用于传输文件。  </p>\n<h2 id=\"磁盘\"><a href=\"#磁盘\" class=\"headerlink\" title=\"磁盘\"></a>磁盘</h2><p>### <strong>4、磁盘管理</strong></p>\n<p>cd 命令用于切换当前工作目录至 dirName (目录参数)。<br>mkdir 命令用于建立名称为 dirName 之子目录。<br>ls 命令用于显示指定工作目录下之内容（列出目前工作目录所含之文件及子目录)。  </p>\n<p>df 命令用于显示目前在 Linux 系统上的文件系统的磁盘使用情况统计。<br>mount 命令是经常会使用到的命令，它用于挂载 Linux 系统外的文件。<br>mount 命令是经常会使用到的命令，它用于挂载 Linux 系统外的文件。  </p>\n<p>stat 命令用于显示 inode 内容。<br>lndir 命令用于连接目录内容。  </p>\n<p>### <strong>5、磁盘维护</strong></p>\n<p>sync 命令用于数据同步，在关闭 Linux 系统时使用。  </p>\n<h2 id=\"网络\"><a href=\"#网络\" class=\"headerlink\" title=\"网络\"></a>网络</h2><p>### <strong>6、网络通讯</strong></p>\n<p>ifconfig 命令用于显示或设置网络设备。<br>ping 命令用于检测主机。执行 ping 指令会使用 ICMP 传输协议，发出要求回应的信息，若远端主机的网络功能没有问题，就会回应该信息，因而得知该主机运作正常。  </p>\n<h2 id=\"系统\"><a href=\"#系统\" class=\"headerlink\" title=\"系统\"></a>系统</h2><p>### <strong>7、系统管理</strong></p>\n<p>exit 命令用于退出目前的 shell。<br>kill 命令用于删除执行中的程序或工作。<br>su 命令用于变更为其他使用者的身份，除 root 外，需要键入该使用者的密码。<br>sudo 命令以系统管理者的身份执行指令，也就是说，经由 sudo 所执行的指令就好像是 root 亲自执行。<br>shutdown 命令可以用来进行关机程序。<br>reboot 命令用于用来重新启动计算机。  </p>\n<p>date 命令可以用来显示或设定系统的日期与时间。<br>id 命令用于显示用户的 ID，以及所属群组的 ID。<br>who 命令用于显示系统中有哪些使用者正在上面，显示的资料包含了使用者 ID、使用的终端机、从哪边连上来的、上线时间、呆滞时间、CPU 使用量、动作等等。<br>logout 命令用于退出系统。<br>free 命令用于显示内存状态。会显示内存的使用情况，包括实体内存，虚拟的交换文件内存，共享内存区段，以及系统核心使用的缓冲区等。  </p>\n<p>useradd 命令用于建立用户帐号。<br>userdel 命令用于删除用户帐号。<br>usermod 命令用于修改用户帐号。<br>userconf 命令用于用户帐号设置程序。<br>uname 命令用于显示系统信息。<br>skill 命令送个讯号给正在执行的程序，预设的讯息为 TERM (中断)，较常使用的讯息为 HUP、INT、KILL、STOP、CONT 和 0。  </p>\n<p>### <strong>8、系统设置</strong></p>\n<p>clear 命令用于清除屏幕。<br>alias 命令用于设置指令的别名。<br>export 命令用于设置或显示环境变量。<br>ulimit 命令用于控制shell程序的资源。  </p>\n<p>enable 命令用于启动或关闭 shell 内建指令。<br>time 命令的用途，在于量测特定指令执行时所需消耗的时间及系统资源等资讯。<br>reset 命令其实和 tset 是一同个命令，它的用途是设定终端机的状态。  </p>\n<h2 id=\"设备\"><a href=\"#设备\" class=\"headerlink\" title=\"设备\"></a>设备</h2><p>### <strong>9、备份压缩</strong></p>\n<p>tar 命令用于备份文件。<br>zip 命令用于压缩文件。  </p>\n<p>### <strong>10、设备管理</strong></p>\n<p>loadkeys 命令可以根据一个键盘定义表改变 linux 键盘驱动程序转译键盘输入过程。  </p>\n<h2 id=\"其他\"><a href=\"#其他\" class=\"headerlink\" title=\"其他\"></a>其他</h2><p>### <strong>其他命令 - Linux bc 命令</strong></p>\n<p>ref: <a href=\"http://www.runoob.com/linux/linux-comm-bc.html\">Linux bc 命令</a></p>\n<p>bc 命令是任意精度计算器语言，通常在 linux 下当计算器用。<br>它类似基本的计算器, 使用这个计算器可以做基本的数学运算。</p>\n<p>### <strong>其他命令 - Linux tail 命令</strong></p>\n<p>ref: <a href=\"http://www.runoob.com/linux/linux-comm-tail.html\">Linux tail 命令</a></p>\n<p>tail 命令可用于查看文件的内容，有一个常用的参数 <strong>-f</strong> 常用于查阅正在改变的日志文件。<br><strong>tail -f filename</strong> 会把 filename 文件里的最尾部的内容显示在屏幕上，并且不断刷新，只要 filename 更新就可以看到最新的文件内容。</p>\n<h1 id=\"Vim\"><a href=\"#Vim\" class=\"headerlink\" title=\"Vim\"></a>Vim</h1><p>ref: <a href=\"http://www.runoob.com/linux/linux-vim.html\">Linux vi&#x2F;vim</a></p>\n<h2 id=\"vi-vim-的使用\"><a href=\"#vi-vim-的使用\" class=\"headerlink\" title=\"vi&#x2F;vim 的使用\"></a>vi&#x2F;vim 的使用</h2><p>(1)  vi&#x2F;vim 刚启动时，进入命令模式 </p>\n<p><strong>i</strong> 切换到输入模式，以输入字符。<br><strong>x</strong> 删除当前光标所在处的字符。<br><strong>:</strong> 切换到底线命令模式，以在最低一行输入命令。  </p>\n<p>(2)  输入模式 (也称为编辑模式) </p>\n<p><strong>字符按键以及 Shift 组合</strong>，输入字符<br><strong>Enter</strong>，回车键，换行<br><strong>Back space</strong>，退格键，删除光标前一个字符<br><strong>Del</strong>，删除键，删除光标后一个字符<br><strong>方向键</strong>，在文本中移动光标<br><strong>Home&#x2F;End</strong>，移动光标到行首&#x2F;行尾<br><strong>Page Up&#x2F;Page Down</strong>，上&#x2F;下翻页<br><strong>Insert</strong>，切换光标为输入&#x2F;替换模式，光标将变成竖线&#x2F;下划线<br><strong>Esc</strong>，退出输入模式，切换到命令模式  </p>\n<p>(3)  底线命令模式 </p>\n<p>在命令模式下按下:（英文冒号）就进入了底线命令模式。<br>底线命令模式可以输入单个或多个字符的命令，可用的命令非常多。<br>在底线命令模式中，基本的命令有（已经省略了冒号）： </p>\n<ul>\n<li><strong>q</strong> 退出程序  </li>\n<li><strong>w</strong> 保存文件</li>\n</ul>\n<p>按 ESC 键可随时退出底线命令模式。<br>简单地说，我们可以将这三个模式想成底下的图标来表示：</p>\n<p><img src=\"http://www.runoob.com/wp-content/uploads/2014/07/vim-vi-workmodel.png\" alt=\"Vim/Vi 工作模式\"></p>\n<h2 id=\"vi-vim-按键说明\"><a href=\"#vi-vim-按键说明\" class=\"headerlink\" title=\"vi&#x2F;vim 按键说明\"></a>vi&#x2F;vim 按键说明</h2><p>除了上面简易范例的 i, Esc, :wq 之外，其实 vim 还有非常多的按键可以使用。</p>\n<p>第一部分：一般模式可用的光标移动、复制粘贴、搜索替换等</p>\n<p>第二部分：一般模式切换到编辑模式的可用的按钮说明</p>\n<p>第三部分：一般模式切换到指令行模式的可用的按钮说明</p>\n<p>特别注意，在 vi&#x2F;vim 中，数字是很有意义的！数字通常代表重复做几次的意思！ 也有可能是代表去到第几个什么什么的意思。</p>\n<p>举例来说，要删除 50 行，则是用 『50dd』 对吧！ 数字加在动作之前，如我要向下移动 20 行呢？那就是『20j』或者是『20↓』即可。</p>\n<h2 id=\"什么是-vim\"><a href=\"#什么是-vim\" class=\"headerlink\" title=\"什么是 vim?\"></a>什么是 vim?</h2><p>vim 键盘图<br><img src=\"http://www.runoob.com/wp-content/uploads/2015/10/vi-vim-cheat-sheet-sch.gif\" alt=\"vim 键盘图\"></p>\n","categories":["Records"],"tags":["Linux","Commands","Git","Markdown"]},{"title":"虚拟机配置 (Ubuntu, Python)","url":"https://eustomaqua.github.io/2018/2018-07-07-VirtualBox-on-Windows/","content":"<link rel=\"stylesheet\" class=\"aplayer-secondary-style-marker\" href=\"/assets/css/APlayer.min.css\"><script src=\"/assets/js/APlayer.min.js\" class=\"aplayer-secondary-script-marker\"></script><!--\nupdated:\nEdited on 24 Mar 2020 10:02:16\nConfigure on 4 Dec 2021 15:20:59\n-->\n\n\n<h1 id=\"VirtualBox-安装-Ubuntu-16-04\"><a href=\"#VirtualBox-安装-Ubuntu-16-04\" class=\"headerlink\" title=\"VirtualBox 安装 Ubuntu 16.04\"></a>VirtualBox 安装 Ubuntu 16.04</h1><h2 id=\"准备\"><a href=\"#准备\" class=\"headerlink\" title=\"准备\"></a>准备</h2><p><strong>软件版本</strong></p>\n<blockquote>\n<p><strong>Windows:</strong> Win 7&#x2F;10<br><strong>VirtualBox:</strong> e.g., VirtualBox 5.2.6&#x2F;5.1.16<br><strong>Ubuntu:</strong> ubuntu-16.04.4-desktop-amd64.iso  </p>\n</blockquote>\n<p><strong>在 bios 开启 Virtualization Technology (VTx) 选项</strong><br>其目的是：可以安装 64 位 linux 操作系统，并且可以开启虚拟机多 CPU 配置。<br>机器不同，BIOS 配置不同，有些机器是默认打开 VTx 选项的，无需此步。如果没有打开 VTx，在 BIOS 打开即可。<br>如：<br><a href=\"https://bbs.thinkpad.com/thread-4406091-1-1.html\">thinkpad t460 开启虚拟化</a><br><a href=\"http://iknow.lenovo.com/app/detail/dc_C183451.html\">如何开启笔记本的 VT-x 虚拟化技术功能</a><br><a href=\"https://blog.csdn.net/liynet/article/details/7232599\">联想 ThinkPad 使用虚拟机时遇到要求打开 CPU 中 VT 的方法</a>  </p>\n<h2 id=\"安装\"><a href=\"#安装\" class=\"headerlink\" title=\"安装\"></a>安装</h2><p>新建虚拟机  </p>\n<ul>\n<li>“新建”虚拟机电脑，选择“现在创建虚拟磁盘”，其中内存设为 2048 GB（自定义）  </li>\n<li>创建虚拟磁盘，文件大小设为 40 GB（自定义），‘虚拟磁盘文件类型’使用 vdi 或 vmdb 均可，‘存储在物理磁盘上’选择“动态分配”</li>\n</ul>\n<p>开始安装  </p>\n<ul>\n<li>点击“启动”，选择光盘文件开始安装  </li>\n<li>选择语言，中英均可  </li>\n<li>安装时下载更新  </li>\n<li>清除整个磁盘并安装  </li>\n<li>设置时区  </li>\n<li>设置键盘语言  </li>\n<li>设置用户名和密码  </li>\n<li>等待……  </li>\n<li>安装完成后重启，重启前要移除安装光盘</li>\n</ul>\n<p>安装增强功能  </p>\n<ul>\n<li>“设备” -&gt; “安装增强功能”  </li>\n<li>重启</li>\n</ul>\n<p>设置共享文件夹  </p>\n<ul>\n<li>“控制” -&gt; “设置” -&gt; “共享文件夹”，点击右侧的添加按钮  </li>\n<li>一定要选中“自动挂载”和“固定分配”  </li>\n<li>添加共享文件夹权限  <blockquote>\n<p>sudo usermod -G vboxsf username</p>\n</blockquote>\n</li>\n<li>一定要重启。重启完成后再查看，发现每个文件夹前都多了”sf_”，在”&#x2F;media”文件夹下。</li>\n</ul>\n<h2 id=\"解决问题\"><a href=\"#解决问题\" class=\"headerlink\" title=\"解决问题\"></a>解决问题</h2><ul>\n<li>设置 root 密码  <blockquote>\n<p>sudo passwd</p>\n</blockquote>\n</li>\n</ul>\n<figure class=\"highlight html\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">安装 ubuntu 成功后，都是普通用户权限，并没有最高 root 权限。如果需要使用 root 权限，通常都会在命令前面加上 sudo 。有时候这样比较麻烦。  </span><br><span class=\"line\">我们一般使用 su 命令来直接切换到 root 用户，但是会抛出 su: Authentication failure 这样的问题。这是因为：ubuntu 默认 root 密码是随机的，即每次开机都有一个新密码。  </span><br><span class=\"line\">给 root 用户设置一个初始密码只需要输入 sudo passwd 命令，输入一般用户密码并设定 root 用户密码。  </span><br><span class=\"line\">设定 root 密码成功后，输入 su 命令，并输入刚才设定的 root 密码，就可以切换成 root 了。  </span><br><span class=\"line\">提示符 $ 代表一般用户，提示符 # 代表 root 用户。  </span><br><span class=\"line\">输入 exit 命令，可退出 root 并返回一般用户。  </span><br></pre></td></tr></table></figure>\n\n<ul>\n<li><p>username 不在 sudoer 文件中。此事将被报告  </p>\n<blockquote>\n<p>gedit &#x2F;etc&#x2F;sudoers 在 “# User privilege specification” 下增加一行 usernameALL&#x3D;(ALL:ALL) ALL</p>\n</blockquote>\n</li>\n<li><p><strong>无法进入root权限，却又需要root权限才能解决问题，的死循环</strong><br><em><strong>出错原因：</strong></em><br>设置root密码时把命令错输成 su passwd，再输正确命令时就提示不在sudoers文件中了。<br>此时，root密码随机，无法进入root权限；而更改sudoers文件又需要root权限，因此陷入死循环。  </p>\n<p><em><strong>更正办法：</strong></em>  <a href=\"https://blog.csdn.net/u011277123/article/details/78011983\">sudoers修改不能在终端使用sudo 和su的解决方法</a>  </p>\n<ul>\n<li>重启电脑，一直按着 esc 键，进入 “高级模式 -&gt; recovery mode -&gt; root” ，回车，这时会进入root目录，相当于单用户模式  </li>\n<li>在root终端输入    # mount -o remount rw &#x2F;  </li>\n<li>修改&#x2F;etc&#x2F;sudoers的权限为777（默认权限是440）    # chmod 777 &#x2F;etc&#x2F;sudoers  </li>\n<li># vi &#x2F;etc&#x2F;sudoers 回车，然后在后端加入 %admin ALL&#x3D;(ALL) ALL 回车 sudo ALL&#x3D;(ALL:ALL) ALL 保存  </li>\n<li>修改完保存退出后将&#x2F;etc&#x2F;sudoers权限恢复成默认的440权限，然后重启。这样你的问题解决！ <blockquote>\n<p># chmod 440 &#x2F;etc&#x2F;sudoers<br># reboot</p>\n</blockquote>\n</li>\n</ul>\n</li>\n<li><p>E: 无法修正错误，因为您要求某些软件包保持现状，就是它们破坏了软件包间的依赖关系。</p>\n<p>在“设置”下的“软件和更新”里，去掉“更新”下的“不支持的更新”<br>然后更新一下  </p>\n<blockquote>\n<p>sudo apt-get update</p>\n</blockquote>\n</li>\n</ul>\n<p>参考  </p>\n<ol>\n<li><p>Ubuntu 的选择， i386 还是 amd64 ？<br>  <a href=\"http://forum.ubuntu.org.cn/viewtopic.php?t=80409\">UBUNTU amd64 和 i386有什么区别</a><br>  i386是32位，amd64是64位。<br>  64位支持的内存一般更大（但如果只有1-2G内存的话，没必要装64位的）；且性能会高些，如果是数值计算，性能会高很多，整数运算上同频率64位的效率是32位的4倍左右。<br>  不过用的人少，问题略多（没有64位的flash支持，只能先用32位的，还有一些软件默认不提供64位包，不过可以自己编译。图省事的，还是用32位的吧）。</p>\n</li>\n<li><p>VirtualBox 安装 虚拟机 Ubuntu 16.04<br>  <a href=\"https://www.linuxidc.com/Linux/2016-08/134580.htm\">VirtualBox安装部署Ubuntu 16.04 图文详解</a><br>  <a href=\"https://blog.csdn.net/u012732259/article/details/70172704\">基于VirtualBox虚拟机安装Ubuntu图文教程</a>  </p>\n</li>\n<li><p>ubuntu 设置 root 密码<br>  <a href=\"https://blog.csdn.net/u012301841/article/details/73692426\">ubuntu 16.04 设置root用户初始密码</a><br>  <a href=\"https://blog.csdn.net/weixin_36210698/article/details/72857366\">ubuntu 首次登陆设置root密码</a>  </p>\n</li>\n<li><p>ubuntu 不在 sudoers 文件中。此事将被报告。<br>  <a href=\"https://blog.csdn.net/lincyang/article/details/21020295\">用户名 不在 sudoers文件中，此事将被报告。</a><br>  <a href=\"https://blog.csdn.net/byzhang19900624/article/details/8813396\">解决 用户不在 sudoers 文件中 的问题</a></p>\n</li>\n</ol>\n<h2 id=\"常用命令\"><a href=\"#常用命令\" class=\"headerlink\" title=\"常用命令\"></a>常用命令</h2><p>ref:  <a href=\"https://blog.csdn.net/debug_cpp/article/details/2687067\">如何查看ubuntu的内核版本和发行版本号</a></p>\n<p>查看 Ubuntu 的内核和发行版本号</p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"built_in\">cat</span> /etc/issue</span><br><span class=\"line\"><span class=\"built_in\">sudo</span> lsb_release -a</span><br></pre></td></tr></table></figure>\n\n\n\n<h1 id=\"Ubuntu-16-04-下-Python-的使用\"><a href=\"#Ubuntu-16-04-下-Python-的使用\" class=\"headerlink\" title=\"Ubuntu 16.04 下 Python 的使用\"></a>Ubuntu 16.04 下 Python 的使用</h1><h2 id=\"默认\"><a href=\"#默认\" class=\"headerlink\" title=\"默认\"></a>默认</h2><p>ref:  <a href=\"https://blog.csdn.net/jenyzhang/article/details/49646641\">linux 查看python安装路径,版本号</a> </p>\n<p>Ubuntu 16.04 自带两个版本的 Python，分别为 2.7 和 3.5 。</p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">python2</span><br><span class=\"line\">python3</span><br><span class=\"line\">python  //默认为 2</span><br></pre></td></tr></table></figure>\n\n<p>查看 Ubuntu 中安装的 Python 路径</p>\n<figure class=\"highlight sh\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">whereis python</span><br><span class=\"line\"><span class=\"built_in\">which</span> python</span><br></pre></td></tr></table></figure>\n\n<p>查看 Ubuntu 中安装的 Python 版本号</p>\n<figure class=\"highlight shell\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">python --version</span><br><span class=\"line\">python</span><br></pre></td></tr></table></figure>\n\n<h2 id=\"pip-相关\"><a href=\"#pip-相关\" class=\"headerlink\" title=\"pip 相关\"></a>pip 相关</h2><h3 id=\"管理员安装\"><a href=\"#管理员安装\" class=\"headerlink\" title=\"管理员安装\"></a>管理员安装</h3><p>程序“pip”尚未安装。如需运行‘pip’，请要求管理员安装 ‘python-pip’ 软件包。</p>\n<p>安装 </p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"built_in\">sudo</span> apt-get install python-pip</span><br><span class=\"line\"><span class=\"built_in\">sudo</span> apt-get install python3-pip  //pip3</span><br></pre></td></tr></table></figure>\n\n<p>更新</p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">pip install --upgrade pip  //bug! 会更新到 10.x</span><br><span class=\"line\">pip install --upgrade pip==9.0.3</span><br></pre></td></tr></table></figure>\n\n<p>查看</p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">pip 8.1.1:\tpip list</span><br><span class=\"line\">pip 9.0.1:\tpip list --format=columns</span><br><span class=\"line\">pip 10.0.1:\tpip list</span><br></pre></td></tr></table></figure>\n\n<h3 id=\"virtualenv-与-virtualenvwrapper\"><a href=\"#virtualenv-与-virtualenvwrapper\" class=\"headerlink\" title=\"virtualenv 与 virtualenvwrapper\"></a>virtualenv 与 virtualenvwrapper</h3><p>ref: <a href=\"https://www.jianshu.com/p/44ab75fbaef2\">python 虚拟环境[virtualenv&#x2F;virtualenvwrapper]设置</a></p>\n<p>安装</p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">pip install virtualenv</span><br><span class=\"line\">pip install virtualenvwrapper</span><br></pre></td></tr></table></figure>\n\n<p>创建新环境</p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">virtualenv [新环境名]</span><br><span class=\"line\">virtualenv [新环境名] --python=/usr/bin/python3</span><br></pre></td></tr></table></figure>\n\n<p>e.g.,  </p>\n<blockquote>\n<p>mkdir VirtualEnv<br>virtualenv py27env –python&#x3D;&#x2F;usr&#x2F;bin&#x2F;python2<br>virtualenv py35env –python&#x3D;&#x2F;usr&#x2F;bin&#x2F;python3</p>\n</blockquote>\n<p>虚拟环境的进入和退出  </p>\n<blockquote>\n<p>cd VirtualEnv<br>source py27env&#x2F;bin&#x2F;activate<br>deactivate<br>source py35env&#x2F;bin&#x2F;activate<br>deactivate</p>\n</blockquote>\n<h2 id=\"安装所需包\"><a href=\"#安装所需包\" class=\"headerlink\" title=\"安装所需包\"></a>安装所需包</h2><h3 id=\"通用\"><a href=\"#通用\" class=\"headerlink\" title=\"通用\"></a>通用</h3><figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">pip install numpy</span><br><span class=\"line\">pip install scipy</span><br><span class=\"line\">pip install scikit-learn</span><br><span class=\"line\"></span><br><span class=\"line\">pip install matplotlib</span><br><span class=\"line\">pip install pandas</span><br><span class=\"line\">pip install pillow</span><br><span class=\"line\"></span><br><span class=\"line\">pip install pathos</span><br><span class=\"line\">pip install lmdb</span><br><span class=\"line\">pip install requests</span><br></pre></td></tr></table></figure>\n\n<h3 id=\"Python-2-7-12\"><a href=\"#Python-2-7-12\" class=\"headerlink\" title=\"Python 2.7.12+\"></a>Python 2.7.12+</h3><figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">pip install theano</span><br><span class=\"line\">pip install keras</span><br><span class=\"line\"></span><br><span class=\"line\">pip install tensorflow==1.4.1</span><br><span class=\"line\"></span><br><span class=\"line\">pip install http://download.pytorch.org/whl/cpu/torch-0.4.0-cp27-cp27mu-linux_x86_64.whl</span><br><span class=\"line\">pip install torchvision</span><br></pre></td></tr></table></figure>\n\n<p>如果有 GPU，比如服务器</p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">pip install tensorflow-gpu==1.4.*</span><br><span class=\"line\">pip install torch torchvision</span><br><span class=\"line\">//pip uninstall tensorflow tensorboard</span><br></pre></td></tr></table></figure>\n\n<h3 id=\"Python-3-5-2\"><a href=\"#Python-3-5-2\" class=\"headerlink\" title=\"Python 3.5.2+\"></a>Python 3.5.2+</h3><figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">pip install tensorflow==1.4.1</span><br><span class=\"line\">pip install http://download.pytorch.org/whl/cpu/torch-0.3.1-cp35-cp35m-linux_x86_64.whl</span><br><span class=\"line\">pip install torchvision==0.2.0</span><br><span class=\"line\">pip install keras</span><br><span class=\"line\"></span><br><span class=\"line\">pip install pymongo</span><br><span class=\"line\">pip install photinia</span><br></pre></td></tr></table></figure>\n\n<p>服务器如有 GPU</p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">pip install tensorflow-gpu==1.4.*</span><br><span class=\"line\">//pip3 install torch torchvision</span><br><span class=\"line\">pip install http://download.pytorch.org/whl/cu80/torch-0.3.1-cp35-cp35m-linux_x86_64.whl</span><br><span class=\"line\">pip install torchvision==0.2.0</span><br></pre></td></tr></table></figure>\n\n<p>注意：<br>使用 lmdb 需要安装 python3-dev<br>使用 matplotlib 需要安装 python3-tk  </p>\n<blockquote>\n<p>sudo apt-get install python3-dev<br>sudo apt-get install python3-tk</p>\n</blockquote>\n<h3 id=\"使用\"><a href=\"#使用\" class=\"headerlink\" title=\"使用\"></a>使用</h3><figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br><span class=\"line\">15</span><br><span class=\"line\">16</span><br><span class=\"line\">17</span><br><span class=\"line\">18</span><br><span class=\"line\">19</span><br><span class=\"line\">20</span><br><span class=\"line\">21</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"keyword\">import</span> numpy <span class=\"keyword\">as</span> np</span><br><span class=\"line\"><span class=\"keyword\">import</span> scipy</span><br><span class=\"line\"><span class=\"keyword\">import</span> sklearn</span><br><span class=\"line\"><span class=\"comment\"># import matplotlib</span></span><br><span class=\"line\"><span class=\"comment\"># matplotlib.use(&#x27;Agg&#x27;)</span></span><br><span class=\"line\"><span class=\"keyword\">import</span> matplotlib.pyplot <span class=\"keyword\">as</span> plt</span><br><span class=\"line\"><span class=\"keyword\">import</span> pandas</span><br><span class=\"line\"><span class=\"keyword\">from</span> PIL <span class=\"keyword\">import</span> Image</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"keyword\">import</span> tensorflow <span class=\"keyword\">as</span> tf</span><br><span class=\"line\"><span class=\"comment\">#No need: import tensorboard</span></span><br><span class=\"line\"><span class=\"keyword\">import</span> torch</span><br><span class=\"line\"><span class=\"keyword\">import</span> torchvision</span><br><span class=\"line\"><span class=\"keyword\">import</span> theano</span><br><span class=\"line\"><span class=\"keyword\">import</span> keras</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"keyword\">import</span> pathos</span><br><span class=\"line\"><span class=\"keyword\">import</span> requests</span><br><span class=\"line\"><span class=\"keyword\">import</span> lmdb</span><br><span class=\"line\"><span class=\"keyword\">import</span> pymongo</span><br><span class=\"line\"><span class=\"keyword\">import</span> photinia <span class=\"keyword\">as</span> ph</span><br></pre></td></tr></table></figure>\n\n<h1 id=\"安装开发环境\"><a href=\"#安装开发环境\" class=\"headerlink\" title=\"安装开发环境\"></a>安装开发环境</h1><h2 id=\"sublime-texstudio-texlive\"><a href=\"#sublime-texstudio-texlive\" class=\"headerlink\" title=\"sublime, texstudio, texlive\"></a>sublime, texstudio, texlive</h2><p><a href=\"https://jingyan.baidu.com/article/64d05a023cd849de55f73be4.html\">Ubuntu 16.04安装sublime text3</a>  </p>\n<p>sudo add-apt-repository ppa:webupd8team&#x2F;sublime-text-3<br>sudo apt-get update<br>sudo apt-get install sublime-text-installer<br>subl    # 启动</p>\n<p><a href=\"http://wuguowei.com/wordpress/archives/1578\">Linux系统 Ubuntu更新sublime-text3的正确方法</a>  </p>\n<p>wget -qO - <a href=\"https://download.sublimetext.com/sublimehq-pub.gpg\">https://download.sublimetext.com/sublimehq-pub.gpg</a> | sudo apt-key add -<br>echo “deb <a href=\"https://download.sublimetext.com/\">https://download.sublimetext.com/</a> apt&#x2F;stable&#x2F;“ | sudo tee &#x2F;etc&#x2F;apt&#x2F;sources.list.d&#x2F;sublime-text.list<br>sudo apt-get update<br>sudo apt-get install sublime-text   </p>\n<p><a href=\"http://wuguowei.com/wordpress/archives/1585\">sublime-text3无法输入中文的解决方法(linux环境)</a><br><a href=\"http://blog.51cto.com/xiumu/1766052\">sublime text3 安装 配置 以及常见问题汇总</a>   </p>\n<p><a href=\"https://blog.csdn.net/DreamHome_S/article/details/77920303\">Ubuntu16.04中使用texlive+texstudio搭建Latex环境</a>   </p>\n<p>sudo apt install texlive<br>sudo apt install latex-cjk-all<br>sudo apt install texstudio  </p>\n<p>安装 texlive, 中文字体包, texstudio  </p>\n<h2 id=\"LanguageTool-Inkscape\"><a href=\"#LanguageTool-Inkscape\" class=\"headerlink\" title=\"LanguageTool, Inkscape\"></a>LanguageTool, Inkscape</h2><p>TexStudio 配置语法检查 LanguageTool<br><a href=\"https://blog.csdn.net/yinqingwang/article/details/54583541\">对TexStudio配置拼写和语法检查LanguageTool功能</a><br><a href=\"http://regulus.cc/2018/01/30/%E6%8A%98%E8%85%BETeXstudio/\">折腾TeXstudio&amp;拼写语法检查工具-LanguageTool</a><br><a href=\"https://zhuanlan.zhihu.com/p/38209314\">【Latex】如何在texstudio中进行语法检测</a></p>\n<p>矢量画图工具 Inkscape<br><a href=\"https://www.linuxdashen.com/ubuntu%E4%BD%BF%E7%94%A8ppa%E5%AE%89%E8%A3%85inkscape-0-91\">ubuntu使用PPA安装Inkscape 0.91</a><br><a href=\"https://blog.csdn.net/tydyz/article/details/76166224\">Linux for Ubuntu安装Inkscape开源矢量图工具</a><br><a href=\"http://www.linuxdiyf.com/linux/32143.html\">Ubuntu安装Inkscape开源矢量图工具及基本使用</a><br><a href=\"https://blog.csdn.net/lxlong89940101/article/details/86497925\">inkscape安装（ubuntu 16.04）</a></p>\n<p>sudo add-apt-repository ppa:inkscape.dev&#x2F;stable<br>sudo apt update<br>sudo apt-get install inkscape<br>sudo apt-get remove inkscape  # 删除</p>\n<h2 id=\"安装-Python-开发环境\"><a href=\"#安装-Python-开发环境\" class=\"headerlink\" title=\"安装 Python 开发环境\"></a>安装 Python 开发环境</h2><h3 id=\"安装-Spyder\"><a href=\"#安装-Spyder\" class=\"headerlink\" title=\"安装 Spyder\"></a>安装 Spyder</h3><p>ref: <a href=\"http://blog.51cto.com/tong707/1970182\">在Ubuntu-16.04中安装Python可视化IDE——Spyder</a></p>\n<p>安装Spyder之前，安装以下python常用库和依赖（如果安装过会跳过）:  </p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"built_in\">sudo</span> apt-get install python-dev python-pip libxml2-dev libxslt1-dev zlib1g-dev libffi-dev libssl-dev</span><br><span class=\"line\"><span class=\"built_in\">sudo</span> pip install scrapy</span><br><span class=\"line\"><span class=\"built_in\">sudo</span> apt-get install libzmq-dev</span><br><span class=\"line\"><span class=\"built_in\">sudo</span> pip install pyzmq <span class=\"comment\">#here</span></span><br><span class=\"line\"><span class=\"built_in\">sudo</span> pip install pygments</span><br><span class=\"line\"><span class=\"built_in\">sudo</span> apt-get install qt4-dev-tools qt4-doc qt4-qtconfig qt4-demos qt4-designer</span><br><span class=\"line\"><span class=\"built_in\">sudo</span> pip install qtconsole</span><br><span class=\"line\"><span class=\"built_in\">sudo</span> pip install ipython</span><br></pre></td></tr></table></figure>\n\n<p>安装 Spyder  </p>\n<blockquote>\n<p>sudo apt install spyder<br>我用的是 sudo apt-get install spyder</p>\n</blockquote>\n<p>安装成功后，命令行输入 spyder 可打开 IDE  </p>\n<blockquote>\n<p>spyder</p>\n</blockquote>\n<p>spyder 使用当前虚拟环境中的 python  </p>\n<blockquote>\n<p>虚拟环境的设置还可以通过 tools &gt; preferences &gt; python interpreter 来自定义 </p>\n</blockquote>\n<ul>\n<li>Tools &gt; Preferences  </li>\n<li>Step 1: Run &gt; Console &gt; 默认第一项改成第二项  </li>\n<li>Step 2: Console &gt; Advanced settings &gt; Python executable 的默认第一项改成第二项  </li>\n<li>Step 3: 把上一步中第二项的默认 “&#x2F;usr&#x2F;bin&#x2F;python” 改成 “&#x2F;home&#x2F;ubuntu&#x2F;VirtualEnv&#x2F;py35env&#x2F;bin&#x2F;python”</li>\n</ul>\n<p>参考<br><a href=\"http://blog.51cto.com/tong707/1970182\">在Ubuntu-16.04中安装Python可视化IDE——Spyder</a><br><a href=\"https://blog.csdn.net/appleyuchi/article/details/78354694\">Ubuntu16.04下面spyder切换虚拟环境下面的python版本</a><br>废弃<br><a href=\"https://www.jianshu.com/p/1d33547f9f05\">conda 虚拟环境下配置spyder解释器为指定解释器</a><br><a href=\"https://www.jianshu.com/p/de68016087c4\">anaconda &#x2F;spyder 多虚拟环境</a> </p>\n<h3 id=\"安装-PyCharm\"><a href=\"#安装-PyCharm\" class=\"headerlink\" title=\"安装 PyCharm\"></a>安装 PyCharm</h3><blockquote>\n<p>sudo add-apt-repository ppa:mystic-mirage&#x2F;pycharm<br>sudo apt update<br>sudo apt install pycharm<br># 我后面两个用的是<br># sudo apt-get update</p>\n</blockquote>\n<h3 id=\"安装-Anaconda\"><a href=\"#安装-Anaconda\" class=\"headerlink\" title=\"安装 Anaconda\"></a>安装 Anaconda</h3><h2 id=\"安装-OpenCV\"><a href=\"#安装-OpenCV\" class=\"headerlink\" title=\"安装 OpenCV\"></a>安装 OpenCV</h2><h3 id=\"安装-opencv-3-0-0\"><a href=\"#安装-opencv-3-0-0\" class=\"headerlink\" title=\"安装 opencv 3.0.0\"></a>安装 opencv 3.0.0</h3><p>ref: <a href=\"http://nooverfit.com/wp/%E6%89%8B%E6%8A%8A%E6%89%8B%E6%95%99%E4%BD%A0%EF%BC%8C%E5%9C%A8ubuntu%E4%B8%8A%E5%AE%89%E8%A3%85opencv-3-0-%E5%92%8C-python-2-7/\">手把手教你，在Ubuntu上安装OpenCV 3.0 和 Python 2.7+</a></p>\n<p>(1) 打开终端窗口，更新 apt-get 包管理器，升级所有预安装包  </p>\n<blockquote>\n<p>$ sudo apt-get update<br>$ sudo apt-get upgrade  </p>\n</blockquote>\n<p>(2) 安装我们的开发工具和包  </p>\n<blockquote>\n<p>$ sudo apt-get install build-essential cmake git pkg-config  </p>\n</blockquote>\n<p>(3) OpenCV 需要从磁盘中加载不同格式的图片，如  JPEG, TIFF, PNG 等等．所以我们需要安装我们的图像 I&#x2F;O 工具包  </p>\n<blockquote>\n<p>$ sudo apt-get install libjpeg-dev libtiff-dev libjasper-dev libpng-dev  </p>\n</blockquote>\n<p>(4) 另外，OpenCV 是用 GTK 开发包来显示 GUI,  即用户图形界面，所以我们要安装这个开发包  </p>\n<blockquote>\n<p>$ sudo apt-get install libgtk2.0-dev  </p>\n</blockquote>\n<p>(5) OpenCV 还必须处理视频流和单个帧，下面就是我们需要的安装包  </p>\n<blockquote>\n<p>$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev  </p>\n</blockquote>\n<p>(6) OpenCV 还包含一些内部优化工具  </p>\n<blockquote>\n<p>$ sudo apt-get install libatlas-base-dev gfortran  </p>\n</blockquote>\n<p>(7) 安装 python 包管理器 pip<br>(8) 步骤8  </p>\n<ul>\n<li><p>安装 virtualenv 和 virtualenvwrapper. 用来分割 python 虚拟环境. 这不是必须的, 但是强烈推荐  </p>\n<blockquote>\n<p>$ sudo pip install virtualenv virtualenvwrapper<br>$ sudo rm -rf ~&#x2F;.cache&#x2F;pip  </p>\n</blockquote>\n</li>\n<li><p>现在我们有了 virtualenv 和 virtualenvwrapper, 我们要更新我们的 ~&#x2F;.bashrc 文件  </p>\n<blockquote>\n<p># virtualenv and virtualenvwrapper<br>export WORKON_HOME&#x3D;$HOME&#x2F;.virtualenvs<br>source &#x2F;usr&#x2F;local&#x2F;bin&#x2F;virtualenvwrapper.sh  </p>\n</blockquote>\n</li>\n<li><p>为了使 ~&#x2F;.bashrc 文件生效 , 你可以用以下这些方法的其中之一<br>(1) 注销后重新登录, (2) 关闭终端开一个新终端, (3) 直接使得 ~&#x2F;.bashrc 文件在当前生效:  </p>\n<blockquote>\n<p>$ source ~&#x2F;.bashrc  </p>\n</blockquote>\n</li>\n<li><p>最后我们生成名字叫 cv 的虚拟开发环境:  </p>\n<blockquote>\n<p>$ mkvirtualenv cv</p>\n</blockquote>\n</li>\n</ul>\n<p>(9) 步骤9  </p>\n<ul>\n<li><p>安装 python 开发工具  </p>\n<blockquote>\n<p>$ sudo apt-get install python2.7-dev  </p>\n</blockquote>\n</li>\n<li><p>安装 numpy   </p>\n<blockquote>\n<p>$ pip install numpy</p>\n</blockquote>\n</li>\n</ul>\n<p>(10) 步骤10   </p>\n<ul>\n<li><p>预备环境终于都搞定啦, 我们进入正题, 安装 OpenCV 3.0.0  </p>\n<blockquote>\n<p>$ cd ~<br>$ git clone <a href=\"https://github.com/Itseez/opencv.git\">https://github.com/Itseez/opencv.git</a><br>$ cd opencv<br>$ git checkout 3.0.0   </p>\n</blockquote>\n</li>\n<li><p>你也可以在这里使用 3.1.0, 但是别忘了去 OpenCV.org 官网看看有什么变动.  </p>\n</li>\n<li><p>有一些牛叉的算法如 SIFT, SURF, 等等 在 opencv_contrib 里面, 所以我们要安装它来支持 OpenCV:  </p>\n<blockquote>\n<p>$ cd ~<br>$ git clone <a href=\"https://github.com/Itseez/opencv_contrib.git\">https://github.com/Itseez/opencv_contrib.git</a><br>$ cd opencv_contrib<br>$ git checkout 3.0.0  </p>\n</blockquote>\n</li>\n<li><p>注意: opencv_contrib 和 OpenCV 版本要一致  </p>\n</li>\n<li><p>是时候 build OpenCV 辣:  </p>\n<blockquote>\n<p>$ cd <del>&#x2F;opencv<br>$ mkdir build<br>$ cd build<br>$ cmake -D CMAKE_BUILD_TYPE&#x3D;RELEASE \\<br>  -D CMAKE_INSTALL_PREFIX&#x3D;&#x2F;usr&#x2F;local \\<br>  -D INSTALL_C_EXAMPLES&#x3D;ON \\<br>  -D INSTALL_PYTHON_EXAMPLES&#x3D;ON \\<br>  -D OPENCV_EXTRA_MODULES_PATH&#x3D;</del>&#x2F;opencv_contrib&#x2F;modules \\<br>  -D BUILD_EXAMPLES&#x3D;ON ..  </p>\n</blockquote>\n</li>\n<li><p><strong>如果要装 OpenCV 3.1.0, 你需要设置 DINSTALL_C_EXAMPLES&#x3D;OFF</strong>   </p>\n</li>\n<li><p>最后, 编译! :  </p>\n<blockquote>\n<p>$ make -j4</p>\n</blockquote>\n</li>\n</ul>\n<p>注意<br>cmake -D CMAKE_BUILD_TYPE&#x3D;RELEASE  -D CMAKE_INSTALL_PREFIX&#x3D;&#x2F;usr&#x2F;local  -D INSTALL_C_EXAMPLES&#x3D;ON  -D INSTALL_PYTHON_EXAMPLES&#x3D;ON  -D OPENCV_EXTRA_MODULES_PATH&#x3D;~&#x2F;opencv_contrib&#x2F;modules  -D BUILD_EXAMPLES&#x3D;ON .. </p>\n<p>即  </p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">cmake -D CMAKE_BUILD_TYPE=RELEASE  -D CMAKE_INSTALL_PREFIX=/usr/local  -D INSTALL_C_EXAMPLES=ON  -D INSTALL_PYTHON_EXAMPLES=ON  -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules  -D BUILD_EXAMPLES=ON .. </span><br></pre></td></tr></table></figure>\n\n\n<h3 id=\"卸载重装\"><a href=\"#卸载重装\" class=\"headerlink\" title=\"卸载重装\"></a>卸载重装</h3><p>ref: <a href=\"https://www.cnblogs.com/txg198955/p/5990295.html\">ubuntu卸载opencv并重装opencv3.0.0</a></p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">一、 卸载opencv2.4.9： Going to the <span class=\"string\">&quot;build&quot;</span> folder directory of opencv from terminal, and execute the following：</span><br><span class=\"line\">1. $ <span class=\"built_in\">sudo</span> make uninstall</span><br><span class=\"line\">2. $ <span class=\"built_in\">cd</span> ..</span><br><span class=\"line\">3. $ <span class=\"built_in\">sudo</span> <span class=\"built_in\">rm</span> -r build</span><br><span class=\"line\">4. $ <span class=\"built_in\">sudo</span> <span class=\"built_in\">rm</span> -r /usr/local/include/opencv2 /usr/local/include/opencv /usr/include/opencv /usr/include/opencv2 /usr/local/share/opencv /usr/local/share/OpenCV /usr/share/opencv /usr/share/OpenCV /usr/local/bin/opencv* /usr/local/lib/libopencv*</span><br></pre></td></tr></table></figure>\n\n<h3 id=\"安装-opencv-3-2-0\"><a href=\"#安装-opencv-3-2-0\" class=\"headerlink\" title=\"安装 opencv 3.2.0\"></a>安装 opencv 3.2.0</h3><p>ref: <a href=\"https://blog.csdn.net/yudiemiaomiao/article/details/72780790\">ubuntu 16.04 安装opencv 3.2.0</a></p>\n<ol>\n<li><p>安装 opencv 依赖包   </p>\n</li>\n<li><p>下载 opencv3.2.0<br>  这里需要下载 opencv 和 opencv_contrib (后者会在 cmake 配置的时候用到)，这是因为 opencv3 以后 SIFT 和 SURF 之类的属性被移到了 contrib 中。   </p>\n<blockquote>\n<p>$ wget <a href=\"https://github.com/opencv/opencv/archive/3.2.0.zip\">https://github.com/opencv/opencv/archive/3.2.0.zip</a>  #从github上直接下载或者clone也可<br>$ wget <a href=\"https://github.com/opencv/opencv_contrib/archive/3.2.0.zip\">https://github.com/opencv/opencv_contrib/archive/3.2.0.zip</a>   </p>\n</blockquote>\n</li>\n<li><p>安装 opencv3.2.0</p>\n</li>\n</ol>\n<p>cd VirtualEnv&#x2F;opencv<br>cd opencv<br>git checkout 3.2.0<br>cd ..&#x2F;opencv_contrib<br>git checkout 3.2.0<br>cd ..  </p>\n<p>cd opencv<br>mkdir build<br>cd build<br>cmake -D CMAKE_BUILD_TYPE&#x3D;Release -D CMAKE_INSTALL_PREFIX&#x3D;&#x2F;usr&#x2F;local ..  </p>\n<p>CMAKE_INSTALL_PREFIX：安装的python目录前缀，指定了python模块的安装路径：CMAKE_INSTALL_PREFIX&#x2F;lib&#x2F;python2.7&#x2F;dist-packages，获取该路径的方式可以用： </p>\n<p>python -c “import sys; print sys.prefix”  </p>\n<p>在安装过程中，很有可能会出现错误：ICV: Downloading ippicv_linux_20151201.tgz 超时，据说此部分可有可无，可自行搜索文件名进行下载，然后替换opencv-3.2.0&#x2F;3rdparty&#x2F;ippicv&#x2F;downloads&#x2F;linux-*目录下的同名文件，重新cmake。</p>\n<p>optional(显示指定一些编译内容），我在安装时未显示指定：</p>\n<p>cmake -D CMAKE_BUILD_TYPE&#x3D;Release -D CMAKE_INSTALL_PREFIX&#x3D;&#x2F;usr&#x2F;local WITH_TBB&#x3D;ON -D BUILD_NEW_PYTHON_SUPPORT&#x3D;ON -D WITH_V4L&#x3D;ON -D INSTALL_C_EXAMPLES&#x3D;ON -D INSTALL_PYTHON_EXAMPLES&#x3D;ON -D BUILD_EXAMPLES&#x3D;ON -D WITH_QT&#x3D;ON -D WITH_OPENGL&#x3D;ON -D ENABLE_FAST_MATH&#x3D;1 -D WITH_CUDA&#x3D;ON -D CUDA_FAST_MATH&#x3D;1 -D WITH_CUBLAS&#x3D;1 -D CUDA_GENERATION&#x3D;Auto -D WITH_GSTREAMER_0_10&#x3D;OFF ..  </p>\n<p>在 build 目录下：  </p>\n<p>make -j4  </p>\n<p>-j4 表示四核运算，可根据电脑配置选择。</p>\n<p>然后<br>编译没问题的话, 就可以安装了:</p>\n<p>sudo make install<br>sudo ldconfig -v  </p>\n<p>(11) 步骤11：<br>如果安装无误, OpenCV 现在已经安装在 &#x2F;usr&#x2F;local&#x2F;lib&#x2F;python2.7&#x2F;site–packages 中了. 但是考虑到我们的虚拟环境 cv 还没有 OpenCV, 我们需要建立一个软链:</p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"built_in\">cd</span> ~  </span><br><span class=\"line\"><span class=\"built_in\">cd</span> VirtualEnv/py27env  </span><br><span class=\"line\"><span class=\"built_in\">cd</span> lib/python2.7/site-packages  </span><br><span class=\"line\"><span class=\"built_in\">ln</span> -s /usr/local/lib/python2.7/dist-packages/cv2.so cv2.so  </span><br></pre></td></tr></table></figure>\n\n<p>(12) 步骤 12:<br>恭喜 ! 你完成了在 Ubuntu 上安装 OpenCV 3.0 和 Python 2.7+<br>所有剩下的就是验证一下啦：   </p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">$ workon cv</span><br><span class=\"line\">$ python</span><br><span class=\"line\">&gt;&gt;&gt; import cv2</span><br><span class=\"line\">&gt;&gt;&gt; cv2.__version__</span><br><span class=\"line\">&gt;&gt;&gt; <span class=\"string\">&#x27;3.0.0&#x27;</span></span><br></pre></td></tr></table></figure>\n\n\n<p>参考<br><a href=\"https://blog.csdn.net/yudiemiaomiao/article/details/72780790\">ubuntu 16.04 安装opencv 3.2.0</a><br><a href=\"http://nooverfit.com/wp/%E6%89%8B%E6%8A%8A%E6%89%8B%E6%95%99%E4%BD%A0%EF%BC%8C%E5%9C%A8ubuntu%E4%B8%8A%E5%AE%89%E8%A3%85opencv-3-0-%E5%92%8C-python-2-7/\">手把手教你，在Ubuntu上安装OpenCV 3.0 和 Python 2.7+</a><br><a href=\"https://www.jianshu.com/p/44ab75fbaef2\">python 虚拟环境[virtualenv&#x2F;virtualenvwrapper]设置</a><br><a href=\"https://www.cnblogs.com/txg198955/p/5990295.html\">ubuntu卸载opencv并重装opencv3.0.0</a><br><a href=\"https://blog.csdn.net/u013453604/article/details/49781771\">Ubuntu下安装opencv 2.4.11</a></p>\n<h2 id=\"spyder-切换环境\"><a href=\"#spyder-切换环境\" class=\"headerlink\" title=\"spyder 切换环境\"></a>spyder 切换环境</h2><p>cd VirtualEnv</p>\n<p>source py35env&#x2F;bin&#x2F;activate<br>pip install ipython  </p>\n<h3 id=\"安装-PyQt4\"><a href=\"#安装-PyQt4\" class=\"headerlink\" title=\"安装 PyQt4\"></a>安装 PyQt4</h3><p>sudo apt-get install libxext6 libxext-dev libqt4-dev libqt4-gui libqt4-sql  &#x2F;&#x2F;delete “libqt4-gui”<br>sudo apt-get install qt4-dev-tools qt4-doc qt4-qtconfig qt4-demos qt4-designer<br>sudo apt-get install python-qt4<br>sudo apt-get install python-qt4-*<br>sudo apt-get install python-qscintilla2   </p>\n<p>sudo apt-get install python3-pyqt4<br>sudo apt-get install python3-pyqt4.qsci<br>sudo apt-get install python3-pyqt4.qtsql<br>sudo apt-get install python3-pyqt4.phonon  </p>\n<p><a href=\"https://blog.csdn.net/baidu_33850454/article/details/78225155\">Ubuntu：Unable to locate package（无法定位安装包）</a><br><a href=\"https://www.bbsmax.com/A/obzbX1Y15E/\">Desktop Ubuntu 14.04LTS&#x2F;16.04科学计算环境配置</a><br><a href=\"https://blog.csdn.net/tao_627/article/details/46529587\">在ubuntu 14.04 64bit下配置安装PyQt4(python2.7和python3.4)</a>  </p>\n<h3 id=\"安装-PySide\"><a href=\"#安装-PySide\" class=\"headerlink\" title=\"安装 PySide\"></a>安装 PySide</h3><p>sudo apt-get install build-essential<br>sudo apt-get install qt4-dev-tools qt4-doc qt4-qtconfig qt4-demos qt4-designer qtcreator<br>sudo pip3 install pyside  </p>\n<p><a href=\"https://blog.csdn.net/u011008379/article/details/55299371\">Ubuntu下安装PySide</a><br><a href=\"https://stackoverflow.com/questions/46723857/pyside-installation-error-with-command-python-setup-py-egg-info-failed-with-er\">PySide Installation error with Command “python setup.py egg_info” failed with error code 1</a>  </p>\n<h3 id=\"安装-ipython-pyside\"><a href=\"#安装-ipython-pyside\" class=\"headerlink\" title=\"安装 ipython, pyside\"></a>安装 ipython, pyside</h3><p>cd ~&#x2F;VirtualEnv<br>source py35env&#x2F;bin&#x2F;activate<br>pip install pyside  </p>\n<h2 id=\"summary\"><a href=\"#summary\" class=\"headerlink\" title=\"summary\"></a>summary</h2><ul>\n<li>python2: ….   </li>\n<li>python3: ….   </li>\n<li>virtualenv, virtualenvwrapper   </li>\n<li>sublime text 3   </li>\n<li>texlive, texstudio (inkscape)  </li>\n<li>pycharm   </li>\n<li>spyder, spyder3</li>\n</ul>\n","categories":["Records"],"tags":["Configuration","Linux"]},{"title":"数据库 (lmdb, mongodb) 的安装与使用，附 Sublime 插件配置","url":"https://eustomaqua.github.io/2018/2018-05-02-database-sublime-nodejs/","content":"<link rel=\"stylesheet\" class=\"aplayer-secondary-style-marker\" href=\"/assets/css/APlayer.min.css\"><script src=\"/assets/js/APlayer.min.js\" class=\"aplayer-secondary-script-marker\"></script><!-- Configure -->\n\n<h1 id=\"lmdb\"><a href=\"#lmdb\" class=\"headerlink\" title=\"lmdb\"></a>lmdb</h1><h2 id=\"Intro\"><a href=\"#Intro\" class=\"headerlink\" title=\"Intro\"></a>Intro</h2><p>lmdb 数据库是一个非关系型数据库。<br>caffe 先支持 leveldb，后支持 lmdb 的，lmdb 读取的效率更高，而且支持不同程序同时读取，而 leveldb 只允许一个程序读取。这一点在使用同样的数据跑不同的配置程序时很重要。<br>lmdb 有利于提高磁盘 IO 利用率。</p>\n<h2 id=\"Install\"><a href=\"#Install\" class=\"headerlink\" title=\"Install\"></a>Install</h2><blockquote>\n<p>pip install lmdb</p>\n</blockquote>\n<h2 id=\"Apply\"><a href=\"#Apply\" class=\"headerlink\" title=\"Apply\"></a>Apply</h2><p>LMDB 和 SQLite&#x2F;MySQL 等关系型数据库不同，属于 key-value 数据库（把 LMDB 想成 dict 会比较容易理解），键 key 与值 value 都是字符串。</p>\n<p>### <strong>操作流程</strong></p>\n<blockquote>\n<p>安装    pip install lmdb<br>使用时    import lmdb<br>概括地讲，操作 LMDB 的流程是：</p>\n<ul>\n<li>打开环境    env &#x3D; lmdb.open()</li>\n<li>建立事务    txn &#x3D; env.begin()</li>\n<li>插入和修改  txn.put(key, value)</li>\n<li>进行删除    txn.delete(key)</li>\n<li>进行查询    txn.get(key)</li>\n<li>进行遍历    txn.cursor()</li>\n<li>提交更改    txn.commit()<br>注意上次 commit() 之后要用 env.begin() 更新 txn 。</li>\n</ul>\n</blockquote>\n<p>简单示例：<br><img src=\"/images/2018-07/05_02_lmdb_img1.png\" height=\"60%\" width=\"60%\"><br><img src=\"/images/2018-07/05_02_lmdb_img2.png\" height=\"60%\" width=\"60%\"></p>\n<h2 id=\"References\"><a href=\"#References\" class=\"headerlink\" title=\"References\"></a>References</h2><p><font color=Magenta> important </font><br><a href=\"https://www.jianshu.com/p/66496c8726a1\">Python操作SQLite&#x2F;MySQL&#x2F;LMDB&#x2F;LevelDB</a>  </p>\n<p><a href=\"http://www.voidcn.com/article/p-badyeacd-ty.html\">lmdb 安装</a><br><a href=\"https://blog.csdn.net/yuanchheneducn/article/details/52934746\">lmdb 安装</a><br><a href=\"http://www.voidcn.com/article/p-uvbflary-bes.html\">Python lmdb</a><br><a href=\"http://www.voidcn.com/article/p-qeyubiym-dq.html\">lmdb – python</a><br><a href=\"http://www.voidcn.com/article/p-npjzqwyd-sc.html\">python lmdb 使用</a>  </p>\n<p><a href=\"https://www.jianshu.com/p/yzFf8j\">lmdb 简介</a><br><a href=\"https://www.zhihu.com/question/41854215\">caffe 为什么要使用 lmdb 数据库？</a>  </p>\n<h1 id=\"MongoDB\"><a href=\"#MongoDB\" class=\"headerlink\" title=\"MongoDB\"></a>MongoDB</h1><p>ref: <a href=\"http://www.runoob.com/mongodb/mongodb-intro.html\">MongoDB 简介</a>  </p>\n<p>MongoDB 是一个基于分布式文件存储的开源数据库系统，由 C++ 语言编写。<br>在高负载的情况下，添加更多的节点，可以保证服务器性能。<br>MongoDB 旨在为 Web 应用提供可扩展的高性能数据存储解决方案。<br>MongoDB 将数据存储为一个文档，数据结构由键值 (key&#x3D;&gt;value) 对组成。<br>MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档，数组及文档数组。  </p>\n<!-- <img src=\"http://www.runoob.com/wp-content/uploads/2013/10/crud-annotated-document.png\" height=\"60%\" width=\"60%\"> -->\n<img src=\"/images/2024-12/crud-annotated-document.png\" height=\"60%\" width=\"60%\">\n\n<p><strong>主要特点</strong>：  </p>\n<ul>\n<li>面向文档存储，安装简单，操作容易，且支持多种编程语言 (如：RUBY，PYTHON，JAVA，C++，PHP，C# 等)  </li>\n<li>可通过本地或网络创建数据镜像，有更强的扩展性  </li>\n<li>如果负载的增加（需要更多的存储空间和更强的处理能力） ，它可以分布在计算机网络中的其他节点上这就是所谓的分片。  </li>\n<li>GridFS是其中一个内置功能，可用于存放大量小文件。  </li>\n<li>允许在服务端执行脚本，可以用Javascript编写某个函数，直接在服务端执行，也可以把函数的定义存储在服务端，下次直接调用即可。  </li>\n<li>索引可以是任意属性，以实现更快的排序，如 FirstName&#x3D;”Sameer”,Address&#x3D;”8 Gandhi Road”  </li>\n<li>支持丰富的查询表达式。  <ul>\n<li>查询指令使用JSON形式的标记，可轻易查询文档中内嵌的对象及数组。  </li>\n<li>使用update()命令可以实现替换完成的文档（数据）或者一些指定的数据字段 。  </li>\n<li>Map&#x2F;reduce 主要是用来对数据进行批量处理和聚合操作，使用Javascript编写，并可通过db.runCommand或mapreduce命令来执行MapReduce操作  </li>\n<li>Map函数调用emit(key,value)遍历集合中所有的记录，将key与value传给Reduce函数进行处理。</li>\n</ul>\n</li>\n</ul>\n<h2 id=\"Mongodb-安装\"><a href=\"#Mongodb-安装\" class=\"headerlink\" title=\"Mongodb 安装\"></a>Mongodb 安装</h2><figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">$ <span class=\"built_in\">sudo</span> apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927 </span><br><span class=\"line\">$ <span class=\"built_in\">echo</span> <span class=\"string\">&quot;deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse&quot;</span> | <span class=\"built_in\">sudo</span> <span class=\"built_in\">tee</span> /etc/apt/sources.list.d/mongodb-org-3.2.list </span><br><span class=\"line\">$ <span class=\"built_in\">sudo</span> apt-get update</span><br><span class=\"line\">$ <span class=\"built_in\">sudo</span> apt-get install -y mongodb-org</span><br></pre></td></tr></table></figure>\n\n<blockquote>\n<p>mongo -version<br>mongod<br>pgrep mongo -l<br>sudo systemctl start mongod<br>sudo systemctl status mongod<br>sudo systemctl enable mongod  </p>\n</blockquote>\n<img src=\"/images/2018-07/07_mongodb_img1.png\" height=\"60%\" width=\"60%\">  \n<img src=\"/images/2018-07/07_mongodb_img2.png\" height=\"60%\" width=\"60%\">\n\n<p>参考<br><a href=\"https://www.jianshu.com/p/5598f1dcbb98\">Ubuntu 安装 Mongodb</a><br><a href=\"http://dblab.xmu.edu.cn/blog/mongodb/\">Ubuntu 下 MongoDB 安装与使用教程</a></p>\n<h2 id=\"Robomongo-安装\"><a href=\"#Robomongo-安装\" class=\"headerlink\" title=\"Robomongo 安装\"></a>Robomongo 安装</h2><p><a href=\"https://robomongo.org/download\">Robomongo 官网</a><br>Robomongo is now Robo 3T </p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">wget https://download.robomongo.org/0.9.0/linux/robomongo-0.9.0-linux-x86_64-0786489.tar.gz </span><br><span class=\"line\">tar -xvf robomongo-0.9.0-linux-x86_64-0786489.tar.gz </span><br><span class=\"line\"><span class=\"built_in\">sudo</span> <span class=\"built_in\">mkdir</span> /usr/local/bin/robomongo</span><br><span class=\"line\"><span class=\"built_in\">sudo</span> <span class=\"built_in\">mv</span> robomongo-0.9.0-linux-x86_64-0786489/* /usr/local/bin/robomongo</span><br><span class=\"line\"><span class=\"built_in\">cd</span> /usr/local/bin/robomongo/bin</span><br><span class=\"line\">./robomongo</span><br></pre></td></tr></table></figure>\n\n<img src=\"/images/2018-07/07_robo3t_img1.png\" height=\"60%\" width=\"60%\">  \n<img src=\"/images/2018-07/07_robo3t_img2.png\" height=\"60%\" width=\"60%\">  \n<img src=\"/images/2018-07/07_robo3t_img3.png\" height=\"60%\" width=\"60%\">\n\n<p>参考<br><a href=\"https://www.digitalocean.com/community/tutorials/how-to-install-mongodb-on-ubuntu-16-04\">How to Install MongoDB on Ubuntu 16.04</a><br><a href=\"https://stackoverflow.com/questions/35547860/how-to-install-robomongo-from-tar-gz-file-as-a-program-in-ubuntu-15-10\">How to install Robomongo from tar.gz file as a program in Ubuntu 15.10</a><br><a href=\"https://askubuntu.com/questions/739297/how-to-install-robomongo-on-ubuntu/781793\">How to install robomongo on Ubuntu</a></p>\n<h2 id=\"mongodb-使用\"><a href=\"#mongodb-使用\" class=\"headerlink\" title=\"mongodb 使用\"></a>mongodb 使用</h2><blockquote>\n<p>mongod<br>mongo<br>locate mongo  </p>\n</blockquote>\n<p>开启服务</p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">$ mongo --dbpath /home/ubuntu/VirtualEnv/mongodb/data/db</span><br></pre></td></tr></table></figure>\n\n<p>另一个终端</p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">$ mongo</span><br></pre></td></tr></table></figure>\n\n<img src=\"/images/2018-07/07_use_db_img1.png\" height=\"60%\" width=\"60%\">  \n<img src=\"/images/2018-07/07_use_db_img5.png\" height=\"60%\" width=\"60%\">\n\n<h2 id=\"pymongo-使用\"><a href=\"#pymongo-使用\" class=\"headerlink\" title=\"pymongo 使用\"></a>pymongo 使用</h2><p>ref: <a href=\"https://zhuanlan.zhihu.com/p/20500518\">pymongo 简易教程</a></p>\n<p><strong>利用 Python 操作 MongoDB 的步骤：</strong><br>(1) 安装 MongoDB<br>(2) 在 Python 上装入 pymongo 库<br>(3) 在终端中配置数据库   </p>\n<blockquote>\n<p>$ mongod –dbpath ~&#x2F;data  </p>\n</blockquote>\n<p>(4) 浏览器中输入 localhost:27017&#x2F; 测试  </p>\n<blockquote>\n<p>hocalhost: 27017&#x2F;<br>“It looks like you are trying to access MongoDB over HTTP on the native driver port.”<br>出现 ↑ 信息，说明已经成功，可以开始使用  </p>\n</blockquote>\n<p>(5) 使用 pymongo</p>\n<p><strong>使用 pymongo</strong><br>(1) 连接 MongoClient<br>(2) 获取数据库 (database)<br>(3) 获取 Collection<br>(4) 存储数据<br>(5) 从 MongoDB 中调用数据<br>(6) 更新数据<br>(7) 删除数据<br>(8) 计数</p>\n<h3 id=\"1-连接-MongoClient\"><a href=\"#1-连接-MongoClient\" class=\"headerlink\" title=\"(1) 连接 MongoClient\"></a>(1) 连接 MongoClient</h3><p>使用 pymongo 的第一步首先是连接 Client 来使用服务：</p>\n<figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"keyword\">from</span> pymongo <span class=\"keyword\">import</span> MongoClient</span><br><span class=\"line\">Client = MongoClient()</span><br></pre></td></tr></table></figure>\n\n<h3 id=\"2-获取数据库-database\"><a href=\"#2-获取数据库-database\" class=\"headerlink\" title=\"(2) 获取数据库 (database)\"></a>(2) 获取数据库 (database)</h3><p>在 MongoDB 中一个实例能够支持多个独立的数据库，你可以用点取属性的方式来获取数据库，或者通过字典的方式获取：  </p>\n<figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">db = Client.test_database</span><br><span class=\"line\">db = Client[<span class=\"string\">&#x27;test_database&#x27;</span>]</span><br></pre></td></tr></table></figure>\n<p>(注：’test’ 可以换成你想要用的名字，比如 “python_database”)</p>\n<h3 id=\"3-获取-Collection\"><a href=\"#3-获取-Collection\" class=\"headerlink\" title=\"(3) 获取 Collection\"></a>(3) 获取 Collection</h3><p>Collection 是存储在 MongoDB 中的一组文件，同获取 database 一样，你可以用点取属性的方式或者字典的方法获取：  </p>\n<figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">collection = db.test_collection</span><br><span class=\"line\">collection = db[<span class=\"string\">&#x27;test_collection&#x27;</span>]</span><br></pre></td></tr></table></figure>\n\n<h3 id=\"4-存储数据\"><a href=\"#4-存储数据\" class=\"headerlink\" title=\"(4) 存储数据\"></a>(4) 存储数据</h3><p>在 MongoDB 中，数据是以 BSON 的类型存储的。见下面的 post:  </p>\n<figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"keyword\">import</span> datetime</span><br><span class=\"line\">post = [<span class=\"string\">&#x27;type&#x27;</span>:<span class=\"string\">&#x27;BSON&#x27;</span>,</span><br><span class=\"line\">           <span class=\"string\">&#x27;date&#x27;</span>:datetime.datetime.utcnow()]</span><br></pre></td></tr></table></figure>\n<p>了解完 MongoDB 的数据格式后，你可以通过以下的方式插入数据 (其中 .inserted_id 将返回 ObjectId 对象)：  </p>\n<figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">document1 = ｛<span class=\"string\">&#x27;x&#x27;</span>:<span class=\"number\">1</span>｝</span><br><span class=\"line\">document2 = ｛<span class=\"string\">&#x27;x&#x27;</span>:<span class=\"number\">2</span>｝</span><br><span class=\"line\">posts = db.posts     <span class=\"comment\">#你也可以不这样做，每次通过 db.posts 调用</span></span><br><span class=\"line\">post_1 = posts.insert_one(document1).inserted_id</span><br><span class=\"line\">post_2 = posts.insert_one(document2).inserted_id</span><br></pre></td></tr></table></figure>\n<p>每个插入的数据对应一个 ObjectId，可直接查看：  </p>\n<figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"meta\">&gt;&gt;&gt; </span>post_1</span><br><span class=\"line\">ObjectId(...)</span><br><span class=\"line\"><span class=\"meta\">&gt;&gt;&gt; </span>post_2</span><br><span class=\"line\">ObjectId(...)</span><br></pre></td></tr></table></figure>\n<p>你还可以用 insert_many() 插入多个文档：  </p>\n<figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">new_document = [&#123;<span class=\"string\">&#x27;x&#x27;</span>:<span class=\"number\">3</span>&#125;,</span><br><span class=\"line\">                             &#123;<span class=\"string\">&#x27;x&#x27;</span>:<span class=\"number\">4</span>&#125;]</span><br><span class=\"line\">result = posts.insert_many(new_document)</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"meta\">&gt;&gt;&gt; </span>result.inserted_ids</span><br><span class=\"line\">[ObjectId(...),ObjectId(...)]</span><br></pre></td></tr></table></figure>\n\n<h3 id=\"5-从-MongoDB-中调用数据\"><a href=\"#5-从-MongoDB-中调用数据\" class=\"headerlink\" title=\"(5) 从 MongoDB 中调用数据\"></a>(5) 从 MongoDB 中调用数据</h3><p>find_one() 函数能够从数据库中调出已存储的数据：  </p>\n<figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"meta\">&gt;&gt;&gt; </span>posts.find_one()</span><br><span class=\"line\">[<span class=\"string\">&#x27;x&#x27;</span>:<span class=\"string\">&#x27;1&#x27;</span>]</span><br></pre></td></tr></table></figure>\n<p>但用 find_one() 的方法只能获取一个数据，如果数据库中存在多个数据时，它返回的是第一个的值。你也可以通过 ObjectId 来请求数据，效果和上面是一样的。如果你想打印出全部数据，可以通过迭代的方式获取：  </p>\n<figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"meta\">&gt;&gt;&gt; </span><span class=\"keyword\">for</span> data <span class=\"keyword\">in</span> posts.find():</span><br><span class=\"line\">            data</span><br><span class=\"line\"><span class=\"meta\">&gt;&gt;&gt; </span></span><br><span class=\"line\">&#123;<span class=\"string\">u&#x27;x&#x27;</span>:<span class=\"number\">1</span>,</span><br><span class=\"line\"><span class=\"string\">u&#x27;x&#x27;</span>:<span class=\"number\">2</span>,</span><br><span class=\"line\"><span class=\"string\">u&#x27;x&#x27;</span>:<span class=\"number\">3</span>,</span><br><span class=\"line\"><span class=\"string\">u&#x27;x&#x27;</span>:<span class=\"number\">4</span>&#125;</span><br></pre></td></tr></table></figure>\n<p>你也可以加入限制性因素来获取特定的数据：  </p>\n<figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"meta\">&gt;&gt;&gt; </span><span class=\"keyword\">for</span> post <span class=\"keyword\">in</span> posts.find(&#123;<span class=\"string\">&#x27;x&#x27;</span>:<span class=\"number\">1</span>&#125;):</span><br><span class=\"line\"><span class=\"meta\">&gt;&gt;&gt; </span>     post</span><br><span class=\"line\">&gt;&gt;&gt;</span><br><span class=\"line\">&#123;<span class=\"string\">u&#x27;x&#x27;</span>:<span class=\"number\">1</span>&#125;</span><br></pre></td></tr></table></figure>\n<p>查找条件中也可以用正则匹配来匹配 value。</p>\n<h3 id=\"6-更新数据\"><a href=\"#6-更新数据\" class=\"headerlink\" title=\"(6) 更新数据\"></a>(6) 更新数据</h3><p>在 pymongo 中可以用 update_one() 来更新数据：  </p>\n<figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"meta\">&gt;&gt;&gt; </span>posts.update_one(&#123;<span class=\"string\">&#x27;x&#x27;</span>:<span class=\"number\">4</span>&#125;,&#123;<span class=\"string\">&#x27;$set&#x27;</span>:&#123;<span class=\"string\">&#x27;x&#x27;</span>:<span class=\"number\">3</span>&#125;&#125;)</span><br></pre></td></tr></table></figure>\n<p>其中传入的第一个参数是你想要更新的数据，第二个是你想要更新的最新数据。其中 $set 部分是必要元素，如果没有会报出错误。除了 $set 外还有很多其它的比如 $inc，对应着不同的功能，在此先不赘述。<br>上面只是更新匹配到的第一个数据，同样地，也可以用 update_many() 一次更新多个值。</p>\n<h3 id=\"7-删除数据\"><a href=\"#7-删除数据\" class=\"headerlink\" title=\"(7) 删除数据\"></a>(7) 删除数据</h3><p>同上，可以用 delete_one() 和 delete_many() 方法来删除数据，括号中是筛选条件：  </p>\n<figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"meta\">&gt;&gt;&gt; </span>posts.delete_one(&#123;<span class=\"string\">&#x27;x&#x27;</span>:<span class=\"number\">3</span>&#125;)</span><br><span class=\"line\"><span class=\"meta\">&gt;&gt;&gt; </span>posts.delete_one(&#123;<span class=\"string\">&#x27;x&#x27;</span>:<span class=\"number\">2</span>&#125;)</span><br></pre></td></tr></table></figure>\n\n<h3 id=\"8-计数\"><a href=\"#8-计数\" class=\"headerlink\" title=\"(8) 计数\"></a>(8) 计数</h3><p>如果想知道 collection 中有多少文档，可以用 .count() 请求来获取符合条件的文档。  </p>\n<figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"meta\">&gt;&gt;&gt; </span>posts.count()</span><br><span class=\"line\"><span class=\"number\">4</span></span><br><span class=\"line\"><span class=\"meta\">&gt;&gt;&gt; </span>posts.find(&#123;<span class=\"string\">&#x27;x&#x27;</span>:<span class=\"number\">1</span>&#125;)</span><br><span class=\"line\"><span class=\"number\">1</span></span><br></pre></td></tr></table></figure>\n\n\n<h1 id=\"Sublime-Text-3-插件配置\"><a href=\"#Sublime-Text-3-插件配置\" class=\"headerlink\" title=\"Sublime Text 3 插件配置\"></a>Sublime Text 3 插件配置</h1><p>ref: <a href=\"https://www.zhihu.com/question/23427839\">左侧显示目录树</a>  </p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">(1) Open folder</span><br><span class=\"line\">(2) 安装 SideBarEnhancements 插件后，View -&gt; Side Bar -&gt; Show Side Bar</span><br></pre></td></tr></table></figure>\n\n<p>安装 Sublime text 3 插件很方便，可以直接下载安装包解压到 Packages 目录 (菜单 -&gt; Preferences -&gt; Browse Packages)；也可以安装 package control 组件，然后直接在线安装。</p>\n<h2 id=\"安装-package-control\"><a href=\"#安装-package-control\" class=\"headerlink\" title=\"安装 package control\"></a>安装 package control</h2><p>按 Ctrl+&#96;(此符号位于 tab 按键上面)调出 console (注：避免热键冲突)<br>粘贴以下代码到命令行并回车：  </p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">import urllib.request,os; pf = <span class=\"string\">&#x27;Package Control.sublime-package&#x27;</span>; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); open(os.path.join(ipp, pf), <span class=\"string\">&#x27;wb&#x27;</span>).write(urllib.request.urlopen( <span class=\"string\">&#x27;http://sublime.wbond.net/&#x27;</span> + pf.replace(<span class=\"string\">&#x27; &#x27;</span>,<span class=\"string\">&#x27;%20&#x27;</span>)).<span class=\"built_in\">read</span>())</span><br></pre></td></tr></table></figure>\n<p>下载完成之后重启 Sublime Text 3。<br>如果在 Perferences -&gt; 中看到 package control 这一项，则安装成功。</p>\n<p><strong>用 Package Control 安装插件的方法</strong><br>按下 Ctrl+Shift+P 调出命令面板；<br>输入 install 调出 Install Package 选项并回车，然后在列表中选中要安装的插件。</p>\n<p><strong>安装 常用插件</strong><br>utf8<br>EMMET<br>sidebarenhancements<br>ctags  自动补全代码  </p>\n<p>参考<br><a href=\"https://www.cnblogs.com/zhaof/p/8126306.html\">让你用sublime写出最完美的python代码–windows环境</a><br><a href=\"https://www.cnblogs.com/unflynaomi/p/5704293.html\">Ubuntu16.04下使用sublime text3搭建Python IDE</a><br><a href=\"https://blog.csdn.net/wxl1555/article/details/69941451\">Sublime Text 3安装及常用插件安装</a><br><a href=\"https://blog.csdn.net/mxdzchallpp/article/details/80054026\">sublime 跳转到函数定义: ctags</a></p>\n<h2 id=\"安装常用插件\"><a href=\"#安装常用插件\" class=\"headerlink\" title=\"安装常用插件\"></a>安装常用插件</h2><h3 id=\"1-代码分析-SublimeLinter-flake8\"><a href=\"#1-代码分析-SublimeLinter-flake8\" class=\"headerlink\" title=\"(1) 代码分析:  SublimeLinter-flake8\"></a>(1) 代码分析:  SublimeLinter-flake8</h3><p>功能：<br>(1) 分析语法错误；<br>(2) 分析代码结构问题 (如使用没有定义的变量)；<br>(3) 分析不符合规范和美观的代码 </p>\n<p>Flake8 是一个需要独立安装的命令行工具。在安装 Flake8 之后，再为 Sublime 安装 SublimeLinter 和 SublimeLinter-flake8 插件。  </p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">$ pip install flake8</span><br><span class=\"line\">$ flake8 --<span class=\"built_in\">help</span></span><br><span class=\"line\">//$ pip install --upgrade flake8  <span class=\"comment\">#升级插件</span></span><br><span class=\"line\">$ pip3 install flake8</span><br></pre></td></tr></table></figure>\n\n<p>SublimeLinter 是 Sublime 的代码框架，它可以集成 Flake8 这样的 linter 引擎来检查我们的代码，<br>并可以把它们的消息转换成 Sublime Text 然后把它们显示在我们代码旁边。<br>SublimeLinter 可以让 Flake8 和 Sublime Text 成为一个非常完美的搭档，可以直接在代码编辑器里看到 Flake8 的消息。 </p>\n<p>所以首先我们需要安装 SublimeLinter，然后我们将安装连接 Flake8 和 SublimeLinter 的 SublimeLinter-flake8  </p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">(1) 通过 ctrl+<span class=\"built_in\">shift</span>+p 进入，并输入 install package，然后回车</span><br><span class=\"line\">(2) 初次会慢点，然后出现提示</span><br><span class=\"line\">(3) 输入要安装的 SublimeLinter，选择并安装</span><br><span class=\"line\">(4) 插件安装完成后会出现一个 Package Control Messages 提示，重启 Sublime 后生效</span><br></pre></td></tr></table></figure>\n\n<p>现在需要将 SublimeLinter 和 Flake8 集成连接起来，这里就通过 SublimeLinter-flake8 插件来完成<br>同样的,和上一个插件安装方法类似也是通过 ctrl+shift+p 进入，并输入 Flake8：<br>安装完成后重启生效。<br>为了让它更好用，还需要对 SublimeLinter-flake8 做一些简单配置</p>\n<p>“mark_style”: “outline” -&gt; “squiggly_underline”<br>“lint_mode”: “background” -&gt; “load_save”</p>\n<h3 id=\"2-代码自动补全-Anaconda\"><a href=\"#2-代码自动补全-Anaconda\" class=\"headerlink\" title=\"(2) 代码自动补全:  Anaconda\"></a>(2) 代码自动补全:  Anaconda</h3><p>功能：<br>(1) 代码的自动补全<br>(2) 显示 python 类、方法或者函数的使用方法<br>(3) 检查导入模块是否有效<br>(4) 按照 PEP8 规范自动化格式我们的代码<br>(5) 可以跳转到函数的定义或者类的定义<br>(6) ……</p>\n<p><strong>Install the Anaconda Package</strong><br>安装同上，重启后生效。<br>简单配置：  </p>\n<figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">&#123;</span><br><span class=\"line\">  <span class=\"string\">&quot;anaconda_linting&quot;</span>: false,</span><br><span class=\"line\">  <span class=\"string\">&quot;pep8&quot;</span>: false,</span><br><span class=\"line\">  <span class=\"string\">&quot;python_interpreter&quot;</span>: <span class=\"string\">&quot;/usr/bin/python3&quot;</span>,</span><br><span class=\"line\">  <span class=\"string\">&quot;suppress_word_completions&quot;</span>: true,</span><br><span class=\"line\">  <span class=\"string\">&quot;suppress_explicit_completions&quot;</span>: true,</span><br><span class=\"line\">  <span class=\"string\">&quot;complete_parameters&quot;</span>: false,</span><br><span class=\"line\">&#125;</span><br></pre></td></tr></table></figure>\n<p>上述配置是因为这个插件和 flake8 插件的功能相互冲突，这里最好使用 flake8 的配置就可以了</p>\n<h2 id=\"建立新的运行环境\"><a href=\"#建立新的运行环境\" class=\"headerlink\" title=\"建立新的运行环境\"></a>建立新的运行环境</h2><p>ref: <a href=\"https://www.jianshu.com/p/d612f8da3ffa\">Ubuntu 16.04下指定Sublime Text 3 默认python编译版本</a></p>\n<p>### <strong>安装 PackageResourceViewer 插件</strong></p>\n<blockquote>\n<ol>\n<li>输入 Ctrl+Shift+P  </li>\n<li>输入 install，选择 Package Control:  Install Package  </li>\n<li>选择 PackageResourceViewer，安装</li>\n</ol>\n</blockquote>\n<p>### <strong>设置默认的 Python.sublime-build</strong></p>\n<blockquote>\n<ol>\n<li>输入 Ctrl+Shift+P  </li>\n<li>输入 resource，选择 PackageResourceViewer: Open Resource  </li>\n<li>再选择 Python，再再选择 Python.sublime-build  </li>\n<li>编辑 Python.sublime-build 将 “shell_cmd”: “python -u &quot;$file&quot;“, 改为以下之一：</li>\n</ol>\n</blockquote>\n<figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br></pre></td><td class=\"code\"><pre><span class=\"line\"><span class=\"string\">&quot;shell_cmd&quot;</span>: <span class=\"string\">&quot;python3 -u \\&quot;$file\\&quot;&quot;</span>, //指定python3为.py默认编译器</span><br><span class=\"line\"><span class=\"string\">&quot;shell_cmd&quot;</span>: <span class=\"string\">&quot;python2 -u \\&quot;$file\\&quot;&quot;</span>, //指定python2为.py默认编译器</span><br><span class=\"line\"><span class=\"string\">&quot;shell_cmd&quot;</span>: <span class=\"string\">&quot;python -u \\&quot;$file\\&quot;&quot;</span>, //根据Ubuntu系统设置，看/usr/<span class=\"built_in\">bin</span>/python链接哪儿(ln)</span><br><span class=\"line\"><span class=\"string\">&quot;shell_cmd&quot;</span>: <span class=\"string\">&quot;指定版本python的绝对路径 -u \\&quot;$file\\&quot;&quot;</span>, //指定路径下的python编译器</span><br></pre></td></tr></table></figure>\n<blockquote>\n<ol start=\"5\">\n<li>使用 python3 的配置文件示例 (Python.sublime-build)</li>\n</ol>\n</blockquote>\n<figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">&#123;</span><br><span class=\"line\">  //<span class=\"string\">&quot;shell_cmd&quot;</span>:<span class=\"string\">&quot;python -u \\&quot;$file\\&quot;&quot;</span>,</span><br><span class=\"line\">  <span class=\"string\">&quot;shell_cmd&quot;</span>:<span class=\"string\">&quot;python3 -u \\&quot;$file\\&quot;&quot;</span>,  //指定python3为.py默认编译器</span><br><span class=\"line\">  <span class=\"string\">&quot;file_regex&quot;</span>:<span class=\"string\">&quot;^[ ]*File \\&quot;(...*?)\\&quot;, line ([0-9]*)&quot;</span>,</span><br><span class=\"line\">  <span class=\"string\">&quot;selector&quot;</span>:<span class=\"string\">&quot;source.python&quot;</span>,</span><br><span class=\"line\">  <span class=\"string\">&quot;env&quot;</span>:&#123;<span class=\"string\">&quot;PYTHONIOENCODING&quot;</span>:<span class=\"string\">&quot;utf-8&quot;</span>&#125;,</span><br><span class=\"line\">  <span class=\"string\">&quot;variants&quot;</span>:[&#123;</span><br><span class=\"line\">      <span class=\"string\">&quot;name&quot;</span>:<span class=\"string\">&quot;Syntax Check&quot;</span>,</span><br><span class=\"line\">      <span class=\"string\">&quot;shell_cmd&quot;</span>:<span class=\"string\">&quot;python -m py_compile \\&quot;$&#123;file&#125;\\&quot;&quot;</span>,</span><br><span class=\"line\">    &#125;</span><br><span class=\"line\">  ]</span><br><span class=\"line\">&#125;</span><br></pre></td></tr></table></figure>\n<blockquote>\n<ol start=\"6\">\n<li>Ctrl+S 保存配置文件<br>  注：有关 .sublime-build 的配置信息说明，可参见  </li>\n<li>重启 Sublime Text 3  </li>\n<li>打开 .py 文件，Ctrl + B 即可编译执行<br>  方便、顺眼多了</li>\n</ol>\n</blockquote>\n<p>### <strong>与其他方法的使用比较</strong></p>\n<p>网上也有其他变通方法，可参考以下链接<br><a href=\"\">ubuntu 下 sublime text 3 加入 python3 环境支持</a><br><a href=\"http://www.cnblogs.com/vingi/articles/2997043.html\">指定 ubuntu 下的 python 运行版本</a></p>\n<p>前者，每次编译时选择麻烦<br>后者，改系统默认配置，可能引发其他依赖异常<br>本文 ctrl+b 可直接编译运行，又不改系统默认配置，简单方便，是合适的解决办法</p>\n<h2 id=\"Tools-Build-System-Python2-3\"><a href=\"#Tools-Build-System-Python2-3\" class=\"headerlink\" title=\"Tools &gt; Build System &gt; Python2&#x2F;3\"></a>Tools &gt; Build System &gt; Python2&#x2F;3</h2><p>安装 Package Control<br><img src=\"/images/2018-07/07_sublime_img1.png\" height=\"60%\" width=\"60%\">  </p>\n<p>更改 Python.sublime-build<br><img src=\"/images/2018-07/07_sublime_img2.png\" height=\"60%\" width=\"60%\">  </p>\n<p>建立新的运行环境<br><img src=\"/images/2018-07/07_sublime_img3.png\" height=\"60%\" width=\"60%\">  </p>\n<p>存储位置在 Browse Package &gt; User 中<br><img src=\"/images/2018-07/07_sublime_img4.png\" height=\"60%\" width=\"60%\">  </p>\n<p>参考<br><a href=\"https://www.yalewoo.com/sublime_text_3_python_build_system.html\">sublime text 3 如何配置自己的 build-system，在命令行中运行 python </a><br><a href=\"http://qihoo.pro/sublime-with-multiversion-python.html\">Sublime 编辑器中集成多个 python 版本</a><br><a href=\"https://blog.csdn.net/u012905422/article/details/52526640\">sublime 运行 python 文件简单配置与安装</a><br><a href=\"https://www.jianshu.com/p/c9d76fe898c8\">Sublime 深度定制：build system 的妙用</a>  </p>\n<h2 id=\"anaconda-不能自动补全第三方库\"><a href=\"#anaconda-不能自动补全第三方库\" class=\"headerlink\" title=\"anaconda 不能自动补全第三方库\"></a>anaconda 不能自动补全第三方库</h2><p>参考<br><a href=\"http://www.voidcn.com/article/p-owbfoovb-ue.html\">Sublime Text 3 配置 python 开发环境遇见的问题</a><br><a href=\"http://blog.5ibc.net/p/30141.html\">mac sublime anaconda 不能自动补全第三方库</a>  </p>\n<p>错因是系统有两个 Python，所以使用 anaconda 插件的 Go to definition 功能时，会跳转到系统自带的 python 那里去，也就是说，这个时候的 anaconda 能够对系统自带的库 work well，但是对我想使用的 python3(非系统路径python) 的库就不行。<br>其原因在于，anaconda 依赖于 sublime 的 Python inerpreter，sublime 调用什么 Python，anaconda 就搜寻这个 Python 的库。<br>这时就需要更改 sublime 的 Python interpreter，不同环境下使用不同的 Python，解决方法有三种：<br>(1) 更改 python.sublime-build<br>(2) 更改 project configuration<br>注：sublime 的 project 很重要，很多插件都是在 project 下才有用的，比如侧边栏增强的那个插件，你的文件要是不在 project 里，装了跟没装一样。其实我现在也没搞明白这个 project 的配置，anaconda 是推荐在 project 里配置，这样不同的 project 有不同的配置，但是我发现在里面写没作用。<br>(3) 改全局配置，打开 anaconda 的 user 配置<br>我的解决方案是 (1,3) 双管齐下才有效</p>\n<h1 id=\"Node-js\"><a href=\"#Node-js\" class=\"headerlink\" title=\"Node.js\"></a>Node.js</h1><p>ref: <a href=\"http://www.runoob.com/nodejs/nodejs-tutorial.html\">Node.js 教程</a></p>\n<p>简单的说 Node.js 就是运行在服务端的 JavaScript。<br>Node.js 是一个基于 Chrome JavaScript 运行时建立的一个平台。<br>Node.js 是一个事件驱动 I&#x2F;O 服务端 JavaScript 环境，基于 Google 的 V8 引擎，V8 引擎执行 Javascript 的速度非常快，性能非常好。</p>\n<p>什么情况下 Node.js 是个非常好的选择？<br>对于前端程序员，不懂得像 PHP、Python 或 Ruby 等动态编程语言，但是想创建自己的服务，……<br>对于后端程序员，想部署一些高性能的服务，……</p>\n<p>## <strong>安装 (failed)</strong></p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">$ <span class=\"built_in\">sudo</span> apt-get install nodejs</span><br><span class=\"line\">$ <span class=\"built_in\">sudo</span> apt-get install npm</span><br><span class=\"line\">$ nodejs --version</span><br><span class=\"line\">v4.2.6</span><br><span class=\"line\">$ npm --version</span><br><span class=\"line\">3.5.2</span><br></pre></td></tr></table></figure>\n<p>但是这个版本太低了，安装 electron 失败。</p>\n<p>于是升级。</p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">$ <span class=\"built_in\">sudo</span> npm install npm@latest -g</span><br><span class=\"line\">$ <span class=\"built_in\">sudo</span> apt-get install node-legacy</span><br><span class=\"line\">$ node --version         <span class=\"comment\">#$ node -v</span></span><br><span class=\"line\">v4.2.6</span><br><span class=\"line\">$ <span class=\"built_in\">sudo</span> npm install -g n  <span class=\"comment\">#failed!</span></span><br><span class=\"line\">$ <span class=\"built_in\">sudo</span> n stable          <span class=\"comment\">#找不到命令</span></span><br></pre></td></tr></table></figure>\n<p>但是这个还是原来的旧版本，没有升级成功。</p>\n<p>## <strong>安装</strong> </p>\n<p>ref: <a href=\"https://nodejs.org/zh-cn/download/package-manager/#debian-and-ubuntu-based-linux-distributions\">官网说明</a></p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">$ <span class=\"built_in\">sudo</span> apt-get install curl</span><br><span class=\"line\">$ curl </span><br><span class=\"line\">$ <span class=\"built_in\">sudo</span> apt-get install -y nodejs</span><br><span class=\"line\">$ node -v</span><br><span class=\"line\">v10.6.0</span><br><span class=\"line\">$ npm -v</span><br><span class=\"line\">6.1.0</span><br></pre></td></tr></table></figure>\n\n<p>安装 electron</p>\n<figure class=\"highlight bash\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">$ git <span class=\"built_in\">clone</span> https://github.com/electron/electron-quick-start</span><br><span class=\"line\">$ <span class=\"built_in\">cd</span> electron-quick-start</span><br><span class=\"line\">$ npm install</span><br><span class=\"line\">$ npm start</span><br></pre></td></tr></table></figure>\n\n<img src=\"/images/2018-07/07_weibo_img1.png\" height=\"60%\" width=\"60%\">  \n<img src=\"/images/2018-07/07_weibo_img2.png\" height=\"60%\" width=\"60%\">  \n<img src=\"/images/2018-07/07_weibo_img3.png\" height=\"60%\" width=\"60%\">\n\n\n\n<h1 id=\"其它问题\"><a href=\"#其它问题\" class=\"headerlink\" title=\"其它问题\"></a>其它问题</h1><p>ref: <a href=\"https://blog.csdn.net/ping523/article/details/54945083\">无法锁定管理目录(&#x2F;var&#x2F;lib&#x2F;dpkg&#x2F;)，是否有其他进程正占用它？</a></p>\n<p>Error:<br>E: 无法获得锁 &#x2F;var&#x2F;lib&#x2F;dpkg&#x2F;lock - open (11: Resource temporarily unavailable)<br>E: 无法锁定管理目录(&#x2F;var&#x2F;lib&#x2F;dpkg&#x2F;)，是否有其他进程正占用它？ </p>\n<p>解决方法一：<br>#:ps -aux (列出进程，形式如)<br>root 5765 0.0 1.0 18204 15504 ? SN 04:02 0:00 apt-get -qq -d<br>找到最后一列以apt-get 开头的进程<br>#:sudo kill -9 该进程的PID </p>\n<p>解决方法二：<br>#:sudo rm &#x2F;var&#x2F;cache&#x2F;apt&#x2F;archives&#x2F;lock<br>#:sudo rm &#x2F;var&#x2F;lib&#x2F;dpkg&#x2F;lock </p>\n","categories":["Records"],"tags":["Configuration"]},{"title":"tags","url":"https://eustomaqua.github.io/tags/index.html","content":"<link rel=\"stylesheet\" class=\"aplayer-secondary-style-marker\" href=\"/assets/css/APlayer.min.css\"><script src=\"/assets/js/APlayer.min.js\" class=\"aplayer-secondary-script-marker\"></script>","categories":[],"tags":[]},{"title":"categories","url":"https://eustomaqua.github.io/categories/index.html","content":"<link rel=\"stylesheet\" class=\"aplayer-secondary-style-marker\" href=\"/assets/css/APlayer.min.css\"><script src=\"/assets/js/APlayer.min.js\" class=\"aplayer-secondary-script-marker\"></script>","categories":[],"tags":[]}]