日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Python代碼自動(dòng)轉(zhuǎn)成其他編程語言C#代碼

 風(fēng)聲之家 2022-05-23 發(fā)布于江蘇

原創(chuàng) 渡碼 渡碼 2022-05-20 09:05 發(fā)表于北京

測(cè)試

哈嘍,大家好。

如果將Python代碼自動(dòng)轉(zhuǎn)成其他編程語言,你會(huì)嘗試嗎?

今天給大家分享一個(gè)有意思的項(xiàng)目,它能將Python代碼自動(dòng)轉(zhuǎn)成C++代碼。這或許對(duì)搞算法的同學(xué)有點(diǎn)幫助。

1. 如何實(shí)現(xiàn)

該項(xiàng)目是 GitHub 開源項(xiàng)目,使用非常簡(jiǎn)單,下載后安裝依賴,運(yùn)行對(duì)應(yīng)的Python腳本即可。

python3 python2cppconverter.py

以下面的 Python 代碼為例

def add_something(x, y):
    print("casually adding some stuff together")
    z = x + y
    return z


if __name__ == "__main__":
    print('Okay, lets go')
    print(add_something(52))

轉(zhuǎn)換成 C++ 代碼如下:

// C++ Code generated from Python Code: 
#include <iostream>
using namespace std;

int add_something(int x, int y) {
    cout << "casually adding some stuff together" << endl;
    int z = x + y;
    return z;
}

int main() {
    cout << "Okay, lets go" << endl;
    cout << add_something(52) << endl;
    return 0;
}

python2cppconverter.py實(shí)際上是調(diào)用OpenAIAPI來完成代碼轉(zhuǎn)換。核心代碼如下:

openai.Completion.create(engine='code-davinci-002'
  prompt=input_prompt, 
  temperature=temperature,
  max_tokens=num_tokens, 
  stream=STREAM, 
  stop='===================\n',
  top_p=1.0
  frequency_penalty=0.0
  presence_penalty=0.0)

本質(zhì)上就是一個(gè)函數(shù)調(diào)用,其中engine參數(shù)是代碼轉(zhuǎn)換模型。

介紹code-davinci-002之前,先來了解下GPT-3模型。

GPT-3OpenAI在 2020年 5 月發(fā)布的一個(gè)模型,這個(gè)模型包含1750億的參數(shù),比GPT-2多了兩個(gè)數(shù)量級(jí),比GPT-2有了極大的改進(jìn)。

GPT-3 在許多 NLP 數(shù)據(jù)集上實(shí)現(xiàn)了強(qiáng)大的性能,包括翻譯、問答和完形填空任務(wù),以及一些需要即時(shí)推理或領(lǐng)域適應(yīng)的任務(wù),例如解讀單詞或執(zhí)行算術(shù)運(yùn)算。

code-davinci-002模型是GPT-3的后代,它的訓(xùn)練數(shù)據(jù)包含自然語言和來自 GitHub 的數(shù)十億行公共代碼。因此,它可以理解和生成代碼,精通十多種編程語言,最擅長Python。

所以,code-davinci-002模型不止能實(shí)現(xiàn)編程語言之間相互轉(zhuǎn)換,還可以與自然語言互轉(zhuǎn)、找代碼中的BUG、根據(jù)代碼編寫文檔等。

比如下面的例子就是為代碼功能生成文字性描述

代碼轉(zhuǎn)自然語言

是不是以后就不用愁寫注釋了?

再看看下面這個(gè)例子,可以為Python代碼生成docstring

圖片
docstring

其他例子大家可以看OpenAI官網(wǎng)。

2. 一個(gè)壞消息

上面說得很美好,然而現(xiàn)實(shí)很殘酷。

我自從下載了這個(gè)項(xiàng)目,從開始運(yùn)行就一步一個(gè)坑。

上面用到的OpenAI API,并不對(duì)國內(nèi)開放,國內(nèi)的朋友申請(qǐng)使用時(shí)會(huì)看到下面的提示

圖片
國內(nèi)無法使用

上來就被卡脖子了!

當(dāng)然,國內(nèi)有團(tuán)隊(duì)提供了解決方案,花 18 元可以買一個(gè)現(xiàn)成的國外賬號(hào),有效期將近 3 個(gè)月,賬號(hào)內(nèi)自帶 18 美元。所以,OpenAI的模型是收費(fèi)的,一點(diǎn)不清真。

當(dāng)你買了賬號(hào),獲取了API key,把它配置到項(xiàng)目中,運(yùn)行項(xiàng)目,準(zhǔn)備見證時(shí)刻的奇跡時(shí),會(huì)發(fā)現(xiàn)如下報(bào)錯(cuò):

No such model: code-davinci-002

這是因?yàn)?code style="margin: 0px 2px; padding: 2px 4px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-size: 14px; border-radius: 4px; background-color: rgba(27, 31, 35, 0.05); font-family: "Operator Mono", Consolas, Monaco, Menlo, monospace; word-break: break-all; color: rgb(239, 112, 96);">code-davinci-002模型處于私有測(cè)試中,需要提交申請(qǐng),通過后才能調(diào)用。

最后,我不建議大家運(yùn)行code-davinci-002模型,對(duì)國內(nèi)朋友來說,成本太高了。如果想看效果,可以到OpenAI官網(wǎng)看看文檔、在線運(yùn)行一些example即可。

雖然項(xiàng)目沒有成功運(yùn)行起來,但這并不妨礙我們學(xué)習(xí)技術(shù),這波強(qiáng)行不虧。

希望今天的內(nèi)容對(duì)你有用,感謝你的關(guān)注,我將持續(xù)分享優(yōu)秀的 AI 項(xiàng)目。

項(xiàng)目地址:https://github.com/alxschwrz/codex_py2cpp

確定

  • 不看此公眾號(hào)

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多