<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【手摸手學ModelArts】Copy攻城獅信手”粘“來 AI 對對聯(lián)

          共 2296字,需瀏覽 5分鐘

           ·

          2021-01-31 07:28


          ?

          農(nóng)歷新年將至,聽說華為云 AI 又將開啟智能對對聯(lián)迎接牛氣沖天,讓我們拭目以待!作為資深 Copy 攻城獅,想要自己實現(xiàn)一個對對聯(lián)的模型,是不能可能完成的任務,因此我搜羅了不少前人的實踐案例,今天想和大家分享的是 和鯨社區(qū)的 rua年糕 貢獻的項目-AI 對聯(lián),基于 ModelArts 的 「我的筆記本」實現(xiàn)。

          ?

          環(huán)境準備

          準備環(huán)境前,先嘮叨幾句:ModelArts 是面向開發(fā)者的一站式AI開發(fā)平臺,ModelArts 在人工智能三要素中都有非常出色的表現(xiàn),數(shù)據(jù)方面提供海量數(shù)據(jù)預處理及半自動化標注,算法方面除了開發(fā)者自己開發(fā)還=提供大量的預置算法和訂閱算法可供選擇,算力方面目前開發(fā)環(huán)境提供免費算力以及即點即用的「我的筆記本」。目前個人比較中意的功能就是「我的筆記本」,如果您體驗過 MindSpore 教程的 「Run in ModelArts」,您會發(fā)現(xiàn)其實教程中鏈接的就是 ModelArts 的 「我的筆記本」模塊,具體體驗可閱讀我的歷史文章5分鐘在線體驗MindSpore的圖層IR--MindIR。

          26dcd84be994df68799f5337930deab1.webp

          相比常規(guī)的開發(fā)先要裝一堆的環(huán)境和軟件,基于 ModelArts 的 AI 開發(fā)似乎變得更簡單,理論上有能上網(wǎng)的設備就夠了,比如 pad,然后僅僅需要注冊一個華為云賬號并實名認證。當然,ModelArts準備工作并不僅僅是這些,比如如需用到 OBS 還需生成訪問密鑰并完成 ModelArts 全局配置。具體操作請參考ModelArts-Lab:https://gitee.com/ModelArts/ModelArts-Lab。

          Free 的「我的筆記本」就在 ModelArts ?總覽頁底部的開發(fā)工具卡片中,點擊「立即體驗」即可開啟一個默認的 CPU 環(huán)境的 JupyterLab,我們可以在右邊的「切換規(guī)格」欄進行環(huán)境或者規(guī)格的切換。需要注意的是:切換資源后,將影響實例下所有Notebook與Terminal。Notebook中執(zhí)行的所有變量將失效,Terminal需要重新打開,手動安裝包不再生效,需要重新執(zhí)行。 目前, CPU 和 GPU 環(huán)境支持 Conda-python3 、Pytorch-1.0.0、TensorFlow-1.13.1等8種Notebook環(huán)境,不過使用 GPU 需要注意:1、免費規(guī)格用于使用體驗,會在1小時后自動停止;2、免費算力不包含對象存儲服務(OBS)存儲資源費用。 如果想使用 MindSpore 框架,可以從 MindSpore 官方文檔教程中的 「Run in ModelArts」進行跳轉(zhuǎn)到帶有 MindSpore 框架的 JupyterLab。

          4af27e9b7c1bcd39e193b1e409a1b529.webp

          Seq2Seq 簡介

          Seq2Seq是 Google 在 2017年開源的一款用于 TensorFlow 的通用編碼器&解碼器框架(encoder-decoder framework),可用于機器翻譯、文本摘要、會話建模、圖像描述等。

          論文地址:https://arxiv.org/abs/1703.03906

          Copy 實踐

          新建 TensorFlow 1.13.1 環(huán)境的 notebook 文件,開始代碼編(kao)寫(bei)。

          cd834abf06285be999522f2fbc63263c.webp
          • 數(shù)據(jù)集下載

            couplet-dataset 盡管比較陳舊,但擁有 70 萬條數(shù)據(jù),應該夠?qū)崿F(xiàn)一個簡單的對對聯(lián)模型。

            !wget?https://github.com/wb14123/couplet-dataset/releases/download/1.0/couplet.tar.gz
            !tar?-xzvf?couplet.tar.gz
            !mkdir?couplet/model
          • 依賴安裝及引用

            !pip?install?klab-autotime
            !pip?install?backcall
            import?codecs
            import?numpy?as?np
            from?keras.models?import?Model
            from?keras.layers?import?*
            from?keras.callbacks?import?Callback
            #?顯示cell運行時長
            %load_ext?klab-autotime

            #?使用GPU
            import?os
            os.environ["CUDA_DEVICE_ORDER"]="PCI_BUS_ID"
            #?The?GPU?id?to?use,?usually?either?"0"?or?"1"
            os.environ["CUDA_VISIBLE_DEVICES"]="0"?
          • 數(shù)據(jù)處理

            #?定義參數(shù)
            min_count?=?2
            maxlen?=?16
            batch_size?=?64
            char_size?=?128
            train_input_path?=?'couplet/train/in.txt'
            train_output_path?=?'couplet/train/out.txt'
            test_input_path?=?'couplet/test/in.txt'
            test_output_path?=?'couplet/test/out.txt'
            #?數(shù)據(jù)讀取與切分
            def?read_data(txtname):
            ????txt?=?codecs.open(txtname,?encoding='utf-8').readlines()
            ????txt?=?[line.strip().split('?')?for?line?in?txt]??????#?每行按空格切分
            ????txt?=?[line?for?line?in?txt?if?len(line)?<=?maxlen]??#?過濾掉字數(shù)超過maxlen的對聯(lián)
            ????return?txt
          • 模型定義

            def?gated_resnet(x,?ksize=3):
            ????#?門卷積?+?殘差
            ????x_dim?=?K.int_shape(x)[-1]
            ????xo?=?Conv1D(x_dim*2,?ksize,?padding='same')(x)
            ????return?Lambda(lambda?x:?x[0]?*?K.sigmoid(x[1][...,?:x_dim])?\
            ????????????????????????????+?x[1][...,?x_dim:]?*?K.sigmoid(-x[1][...,?:x_dim]))([x,?xo])

            ????????????????????????????x_in?=?Input(shape=(None,))
            x?=?x_in
            x?=?Embedding(len(chars)+1,?char_size)(x)
            x?=?Dropout(0.25)(x)

            x?=?gated_resnet(x)
            x?=?gated_resnet(x)
            x?=?gated_resnet(x)
            x?=?gated_resnet(x)
            x?=?gated_resnet(x)
            x?=?gated_resnet(x)

            x?=?Dense(len(chars)+1,?activation='softmax')(x)

            其他代碼此處就不再貼了,建議直接參考源碼出處,或者訪問https://github.com/hu-qi/modelarts-couplet。此處我選擇 200 個 Epoch,訓練過程如下圖:77c08ca953ad42414e8eaf8cf3fd69a5.webp從圖中明顯可以看出評估函數(shù)輸出的下聯(lián)不斷地在調(diào)整。當訓練完成之后我們便煉的了簡單能使用的丹--AI 對對聯(lián)模型,緊接著測試一下:

            上聯(lián):天增歲月人增壽?
            下聯(lián):國滿春秋我成春
            上聯(lián):鼠去牛來聞虎嘯?
            下聯(lián):羊來馬去看龍吟
            上聯(lián):流光溢彩氣沖斗牛?
            下聯(lián):春色流輝風震春蟲

            e5f6ff8e8922a34af79f36d3c6622b09.webp不錯不錯,還是挺工整通順的!

            當然實踐中也并不是一帆風順,訓練過程中如果遇到續(xù)期提示,請務必要手動點擊,不然又得重啟 Notebook 。續(xù)期就對了,盡管我不太清除能續(xù)幾次,但續(xù)期就不會導致訓練中斷。7f4867087034b3ed08c8c98595e8cbe6.webp

          此次實踐的數(shù)據(jù)集和 notebook 已上傳到 github :https://github.com/hu-qi/modelarts-couplet, 另外對聯(lián)數(shù)據(jù)也共享到 ModelArts AI Gallery:couplet-dataset:70萬對聯(lián)數(shù)據(jù)集,歡迎取閱!

          ?

          華為云開發(fā)了AI寫春聯(lián)、送祝福的小程序,采用GPT深度學習模型,通過海量文本數(shù)據(jù)在云端預訓練學習,基于在公開對聯(lián)數(shù)據(jù)上進行微調(diào),最終實現(xiàn)春聯(lián)自動生成。“云上過新年”,AI春聯(lián)也能擁有滿滿年味,寫春聯(lián),甭發(fā)愁。新版小程序即將上線,可在微信搜索EI體驗空間輸入關鍵詞自動生成。

          ?

          重要的事情說三遍:
          記得關注「EI體驗空間」小程序!
          記得關注「EI體驗空間」小程序!
          記得關注「EI體驗空間」小程序!

          如果您有想法與交流,歡迎關注公眾號:「胡琦」,或者 wechat:「Hugi66」,資深Copy攻城獅,期待您帶飛!


          瀏覽 43
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美操逼精品 | 热久久最新视频 | 亚洲乱码一区二区三区 | 国产不卡视频一卡二卡三卡四卡 | 国产成人无码在线高清播放 |