日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

imdb导mysql_keras如何导入本地下载的imdb数据集?

發布時間:2025/3/20 数据库 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 imdb导mysql_keras如何导入本地下载的imdb数据集? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第一步 下載數據集到本地

提取碼:9h3u

存儲位置:C:/用戶/用戶名/.keras/datasets

(用戶名不同人不一樣,可能電腦不一樣存儲位置也略有差異)

第二步 導入數據集

import keras

import numpy as np

# load data

from keras.datasets import imdb

(train_data, train_labels), (test_data, test_labels) = imdb.load_data(num_words=10000)

----------

查看數據集是否導入正確

print(train_labels[0]) #1

print(max([max(sequence) for sequence in train_data])) #9999

----------

遇到的一些小問題以及解決辦法:

若出現了幾個問題,最后差不多是這樣:raise ValueError("Object arrays cannot be loaded when " ValueError: Object arrays cannot be loaded ……

這說明numpy版本太高了,我一開始的版本是1.16.4,之后轉換成了1.16.2

版本轉換:

cmd輸入xxxxxxxxxxxxxxxx numpy==1.16.2

xxxxxxxxxx為https://mirrors.tuna.tsinghua.edu.cn/help/pypi/中代碼,可加快下載速度,直接復制,只需要將some-package改成numpy==1.16.2即可

第三步 電影評論二分類完整代碼示例

import keras

import numpy as np

# load data

from keras.datasets import imdb

(train_data, train_labels), (test_data, test_labels) = imdb.load_data(num_words=10000)

print(train_labels[0]) #1

print(max([max(sequence) for sequence in train_data])) #9999

# 將索引解碼為單詞,需要下載imdb_word_index.json至C:/用戶/用戶名/.keras/datasets

# 鏈接:https://pan.baidu.com/s/1kkmpXrr1tkFtg7D3LX_lcw 提取碼:wzjw

word_index = imdb.get_word_index() #將單詞映射為整數索引的字典

reverse_word_index = dict([(value, key) for (key, value) in word_index.items()]) #鍵值顛倒,將整數索引映射為單詞

decoded_review = ' '.join([reverse_word_index.get(i - 3, '?') for i in train_data[0]])

#print(decoded_review)

# 對列表進行one-shot編碼,eg.將[3,5]轉換成[0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,...]

def vectorize_sequences(sequences, dimension=10000):

results = np.zeros((len(sequences), dimension))

for i, sequence in enumerate(sequences):

results[i,sequence] = 1. #將 results[i] 的指定索引設為 1

return results

# handle input data

x_train = vectorize_sequences(train_data)

x_test = vectorize_sequences(test_data)

#print(x_train[0]) #[0. 1. 1. ... 0. 0. 0.]

# handle output data

y_train = np.asarray(train_labels).astype('float32')

y_test = np.asarray(test_labels).astype('float32')

# 驗證集預留

x_val = x_train[:10000]

partial_x_train = x_train[10000:]

y_val = y_train[:10000]

partial_y_train = y_train[10000:]

# build model

from keras import models

from keras import layers

model = models.Sequential()

model.add(layers.Dense(16, activation='relu', input_shape=(10000,)))

model.add(layers.Dense(16, activation='relu'))

model.add(layers.Dense(1, activation='sigmoid'))

# train model

model.compile(optimizer='rmsprop',

loss='binary_crossentropy',

metrics=['accuracy'])

history = model.fit(partial_x_train,

partial_y_train,

epochs=20,

batch_size=512,

validation_data=(x_val, y_val))

history_dict = history.history

#print(history_dict.keys()) #dict_keys(['val_loss', 'val_acc', 'loss', 'acc'])

# 繪制訓練損失、驗證損失、訓練精度、驗證精度

import matplotlib.pyplot as plt

# plot loss

acc = history.history['acc']

val_acc = history.history['val_acc']

loss = history.history['loss']

val_loss = history.history['val_loss']

epochs = range(1, len(acc)+1)

plt.plot(epochs, loss, 'bo', label='Training loss') #blue o

plt.plot(epochs, val_loss, 'b', label='Validation loss') #blue solid line

plt.title('Training and validation loss')

plt.xlabel('Epochs')

plt.ylabel('Loss')

plt.legend()

plt.show()

# plot accuracy

plt.clf() #清空圖像

plt.plot(epochs, acc, 'bo', label='Training acc')

plt.plot(epochs, val_acc, 'b', label='Validation acc')

plt.title('Training and validation accuracy')

plt.xlabel('Epochs')

plt.ylabel('Accuracy')

plt.legend()

plt.show()

----------

此處驗證集用來確定訓練NN可采用的最佳epoch,訓練集--->NN參數,得出epochs=4

用新參數搭建的NN去訓練train_data,注釋掉history以及history之后的代碼:

model.fit(x_train, y_train, epochs=4, batch_size=512)

results = model.evaluate(x_test, y_test)

print(results)

print(model.predict(x_test))

------------

進一步實驗的實驗結果,(控制變量:

[0.29455984374523164, 0.88312] #原結構共三層

[0.2833905682277679, 0.88576] #共兩層

[0.30949291754722597, 0.87984] #神經元個數為32

[0.08610797638118267, 0.88308] #mse

[0.32080167996406556, 0.87764] #用tanh代替relu

選定的結構較為合適。

總結

以上是生活随笔為你收集整理的imdb导mysql_keras如何导入本地下载的imdb数据集?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。