最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解如何在ChatGPT內(nèi)構(gòu)建一個Python解釋器

 更新時間:2023年02月15日 14:26:07   作者:小墻程序員  
這篇文章主要為大家詳細(xì)介紹了如何在ChatGPT內(nèi)構(gòu)建一個Python解釋器,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價值,需要的可以參考一下

引用:Art KulakovHow to Build a Python Interpreter Inside ChatGPT

這個靈感來自于一個類似的故事,在ChatGPT里面建立一個虛擬機(jī)(Building A Virtual Machine inside ChatGPT)。給我留下了深刻的印象,并決定嘗試類似的東西,但這次不是用Linux命令行工具,而是讓ChatGPT成為我們的Python解釋器。

下面是初始化ChatGPT的命令:

我想讓你充當(dāng)Python解釋器。我將輸入命令,你將用python解釋器輸出。我希望你只回答終端輸出中的一個獨特的代碼塊,而不是其他。不要寫解釋,只輸出python輸出的內(nèi)容。不要輸入命令,除非我指示你這樣做。當(dāng)我需要用英語告訴你一些事情的時候,我會通過把文本放在大括號里,就像這樣:{示例文本}。我的第一個命令是 a=1。

從上圖不能看出效果很好,讓我們試試一些簡單的算術(shù)表達(dá)式。

又成功了;如果我們使用一個沒有導(dǎo)入的庫,會發(fā)生什么?

雖然它決定幫我解決一個錯誤。其實我不希望它這樣做,所以我再次要求它不要輸出任何東西,除了python代碼。

{只打印python輸出,不打印任何注釋}。

順便說一下,ChatGPT有時能夠使用沒有導(dǎo)入的庫,但這次我很幸運,它打印出了錯誤信息。很顯然我很確定ChatGPT能夠完成簡單的任務(wù),讓我們試試更復(fù)雜的東西,讓它輸出二進(jìn)制搜索算法的結(jié)果。

# Binary Search in python


def binarySearch(array, x, low, high):

    # Repeat until the pointers low and high meet each other
    while low <= high:

        mid = low + (high - low)//2

        if array[mid] == x:
            return mid

        elif array[mid] < x:
            low = mid + 1

        else:
            high = mid - 1

    return -1


array = [3, 4, 5, 6, 7, 8, 9]
x = 4

result = binarySearch(array, x, 0, len(array)-1)

if result != -1:
    print("Element is present at index " + str(result))
else:
    print("Not found")

似乎它不想聽我的請求,只聽python的輸出,但輸出還是正確的,令人印象深刻!讓我們試著輸入一個不存在的數(shù)字,比如:

x = 4.5

好吧,似乎它猜中了這一個!讓我們跳到更復(fù)雜的東西。讓我們從一些簡單的機(jī)器學(xué)習(xí)算法開始,比如線性回歸。我想知道ChatGPT是否有能力解決一個簡單的優(yōu)化任務(wù)...

import numpy as np
import matplotlib.pyplot as plt
  
def estimate_coef(x, y):
    # number of observations/points
    n = np.size(x)
  
    # mean of x and y vector
    m_x = np.mean(x)
    m_y = np.mean(y)
  
    # calculating cross-deviation and deviation about x
    SS_xy = np.sum(y*x) - n*m_y*m_x
    SS_xx = np.sum(x*x) - n*m_x*m_x
  
    # calculating regression coefficients
    b_1 = SS_xy / SS_xx
    b_0 = m_y - b_1*m_x
  
    return (b_0, b_1)
  
def plot_regression_line(x, y, b):
    # plotting the actual points as scatter plot
    plt.scatter(x, y, color = "m",
               marker = "o", s = 30)
  
    # predicted response vector
    y_pred = b[0] + b[1]*x
  
    # plotting the regression line
    plt.plot(x, y_pred, color = "g")
  
    # putting labels
    plt.xlabel('x')
    plt.ylabel('y')
  
    # function to show plot
    plt.show()
  
def main():
    # observations / data
    x = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
    y = np.array([1, 3, 2, 5, 7, 8, 8, 9, 10, 12])
  
    # estimating coefficients
    b = estimate_coef(x, y)
    print("Estimated coefficients:\nb_0 = {}  \
          \nb_1 = {}".format(b[0], b[1]))
  
    # plotting regression line
    # plot_regression_line(x, y, b)
  
if __name__ == "__main__":
    main()

這項優(yōu)化任務(wù)的正確答案是:

Estimated coefficients:
b_0 = 1.2363636363636363        
b_1 = 1.1696969696969697

下面是ChatGPT的輸出結(jié)果:

這與真實結(jié)果很接近! 如果我們在真正的python中繪制預(yù)測圖,我們將得到以下圖表:

關(guān)于這個任務(wù)的另一個有意思的點:我又運行了一次同樣的命令,當(dāng)時的輸出結(jié)果與真實結(jié)果完全吻合。因此,我們可以認(rèn)為ChatGPT通過了這個任務(wù)。

好了,現(xiàn)在是時候做一些簡單的神經(jīng)網(wǎng)絡(luò)的事情了!也許我們可以裝一個簡單的Keras模型。也許我們可以裝一個簡單的Keras模型?

# first neural network with keras make predictions
from numpy import loadtxt
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
# load the dataset
dataset = loadtxt('pima-indians-diabetes.csv', delimiter=',')
# split into input (X) and output (y) variables
X = dataset[:,0:8]
y = dataset[:,8]
# define the keras model
model = Sequential()
model.add(Dense(12, input_shape=(8,), activation='relu'))
model.add(Dense(8, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
# compile the keras model
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
# fit the keras model on the dataset
model.fit(X, y, epochs=150, batch_size=10, verbose=0)
# make class predictions with the model
predictions = (model.predict(X) > 0.5).astype(int)
# summarize the first 5 cases
for i in range(5):
 print('%s => %d (expected %d)' % (X[i].tolist(), predictions[i], y[i]))

注意,數(shù)據(jù)集實際上是一個CSV文件,ChatGPT沒有權(quán)限訪問這個文件...

好吧,這是正確的輸出,而我很害怕。如果我把網(wǎng)絡(luò)的結(jié)構(gòu)改成一個不正確的結(jié)構(gòu),會發(fā)生什么?讓我們改變一下輸入的shape。

model.add(Dense(12, input_shape=(6,), activation='relu'))

看來我在失去工作之前還有幾年時間;這次ChatGPT沒有理解這個技巧,仍然打印了輸出。讓我們做最后一項任務(wù)--在OpenAI里面調(diào)用Huggingface怎么樣?

正確的輸出:

[{'entity_group': 'ORG',  'score': 0.9472818374633789,  'word': 'Apple',  'start': 0,  'end': 5}, {'entity_group': 'PER',  'score': 0.9838564991950989,  'word': 'Steve Jobs',  'start': 74,  'end': 85}, {'entity_group': 'LOC',  'score': 0.9831605950991312,  'word': 'Los Altos',  'start': 87,  'end': 97}, {'entity_group': 'LOC',  'score': 0.9834540486335754,  'word': 'Californie',  'start': 100,  'end': 111}, {'entity_group': 'PER',  'score': 0.9841555754343668,  'word': 'Steve Jobs',  'start': 115,  'end': 126}, {'entity_group': 'PER',  'score': 0.9843501806259155,  'word': 'Steve Wozniak',  'start': 127,  'end': 141}, {'entity_group': 'PER',  'score': 0.9841533899307251,  'word': 'Ronald Wayne',  'start': 144,  'end': 157}, {'entity_group': 'ORG',  'score': 0.9468960364659628,  'word': 'Apple Computer',  'start': 243,  'end': 257}]

ChatGPT的輸出結(jié)果:

[{'word': 'Apple', 'score': 0.9993804788589478, 'entity': 'I-ORG'}, {'word': 'Steve', 'score': 0.999255347251892, 'entity': 'I-PER'}, {'word': 'Jobs', 'score': 0.9993916153907776, 'entity': 'I-PER'}, {'word': 'Steve', 'score': 0.9993726613044739, 'entity': 'I-PER'}, {'word': 'Wozniak', 'score': 0.999698519744873, 'entity': 'I-PER'}, {'word': 'Ronald', 'score': 0.9995181679725647, 'entity': 'I-PER'}, {'word': 'Wayne14', 'score': 0.9874711670837402, 'entity': 'I-PER'}, {'word': 'Apple', 'score': 0.9974127411842163, 'entity': 'I-ORG'}, {'word': 'Computer', 'score': 0.968027651309967, 'entity': 'I-ORG'}, {'word': 'Apple', 'score': 0.8259692192077637, 'entity': 'I-ORG'}]

其結(jié)果與huggingface的輸出結(jié)果很接近,但是不一致。我猜測是因為Huggingface的API改變了,由于ChatGPT沒有在最新的歷史數(shù)據(jù)上進(jìn)行訓(xùn)練,所以它以舊的格式輸出結(jié)果。

總結(jié)

在過去的幾天里,我一直在玩ChatGPT,我被使用這個工具的無限可能性所吸引。雖然它不是一個真正的python解釋器,但它在為我編譯python代碼方面仍然做得很好。我還發(fā)現(xiàn),它能很好地解決Hard難度的 LEETCODE 代碼問題。

最后再多說一句:ChatGPT,你將如何幫助人類?

如果你還沒有嘗試過ChatGPT,你一定要試試,因為它就是未來!

以上就是詳解如何在ChatGPT內(nèi)構(gòu)建一個Python解釋器的詳細(xì)內(nèi)容,更多關(guān)于ChatGPT構(gòu)建Python解釋器的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 使用Python實現(xiàn)正態(tài)分布、正態(tài)分布采樣

    使用Python實現(xiàn)正態(tài)分布、正態(tài)分布采樣

    今天小編就為大家分享一篇使用Python實現(xiàn)正態(tài)分布、正態(tài)分布采樣,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • 詳解如何利用tushare、pycharm和excel三者結(jié)合進(jìn)行股票分析

    詳解如何利用tushare、pycharm和excel三者結(jié)合進(jìn)行股票分析

    這篇文章主要介紹了詳解如何利用tushare、pycharm和excel三者結(jié)合進(jìn)行股票分析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • OpenCV灰度化之后圖片為綠色的解決

    OpenCV灰度化之后圖片為綠色的解決

    這篇文章主要介紹了OpenCV灰度化之后圖片為綠色的解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Python實現(xiàn)基于SVM的分類器的方法

    Python實現(xiàn)基于SVM的分類器的方法

    這篇文章主要介紹了Python實現(xiàn)基于SVM的分類器的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • 基于Python實現(xiàn)簡單的學(xué)生點名系統(tǒng)

    基于Python實現(xiàn)簡單的學(xué)生點名系統(tǒng)

    現(xiàn)在的學(xué)生大部分都很積極,會主動舉手回答問題。但是,也會遇到一些不好的情況,比如年級越高主動舉手的人越少,所以本文做了一個隨機(jī)的學(xué)生點名系統(tǒng)可以幫老師解決這些問題
    2022-09-09
  • python smtplib模塊發(fā)送SSL/TLS安全郵件實例

    python smtplib模塊發(fā)送SSL/TLS安全郵件實例

    這篇文章主要介紹了python smtplib模塊發(fā)送SSL/TLS安全郵件實例,本文講解了二種發(fā)送方式,需要的朋友可以參考下
    2015-04-04
  • Python強大郵件處理庫Imbox安裝及用法示例

    Python強大郵件處理庫Imbox安裝及用法示例

    這篇文章主要給大家介紹了關(guān)于Python強大郵件處理庫Imbox安裝及用法的相關(guān)資料,Imbox是一個Python 庫,用于從IMAP郵箱中讀取郵件,它提供了簡單易用的接口,幫助開發(fā)者處理郵件,需要的朋友可以參考下
    2024-03-03
  • 基于python實現(xiàn)簡單網(wǎng)頁服務(wù)器代碼實例

    基于python實現(xiàn)簡單網(wǎng)頁服務(wù)器代碼實例

    這篇文章主要介紹了基于python實現(xiàn)簡單網(wǎng)頁服務(wù)器代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-09-09
  • 使用PyInstaller?打包配置文件

    使用PyInstaller?打包配置文件

    這篇文章主要介紹了使用PyInstaller?打包配置文件,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Python最長回文子串問題

    Python最長回文子串問題

    這篇文章主要介紹了Python最長回文子串問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11

最新評論

台山市| 合作市| 永吉县| 临猗县| 建湖县| 时尚| 宁都县| 长白| 栾川县| 凤山县| 永新县| 德令哈市| 天柱县| 多伦县| 萨迦县| 大足县| 赤壁市| 商南县| 高平市| 铁岭县| 嵊泗县| 封开县| 措勤县| 长丰县| 犍为县| 五常市| 阜南县| 吉木乃县| 任丘市| 莆田市| 宜丰县| 石狮市| 黔西县| 桂东县| 营山县| 论坛| 武山县| 麻江县| 罗城| 贵阳市| 漯河市|