栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python深度学习

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python深度学习

代码为文本预测

import keras
import numpy as np
from tensorflow import optimizers
import tensorflow as tf
from keras.utils.data_utils import get_file
from tensorflow.python.client import session
path=get_file('nietzsche.txt',origin="https://s3.amazonaws.com/text-datasets/nietzsche.txt")
text=open(path).read().lower()
print('Corpus Length:',len(text))
maxlen=60
step=3
sentences=[]
next_chars=[]
for i in range(0,len(text)-maxlen,step):
    sentences.append(text[i:i+maxlen])
    next_chars.append(text[i+maxlen])
print('Number of sequences:',len(sentences))
chars=sorted(list(set(text)))
print('Unique characters:',len(chars))
char_indices=dict((char,chars.index(char))for char in chars)
print('Vectorization...')
x=np.zeros((len(sentences),maxlen,len(chars)),dtype=np.bool)
y=np.zeros((len(sentences),len(chars)),dtype=np.bool)
for i ,sentence in enumerate(sentences):
    for t,char in enumerate(sentence):
        x[i,t,char_indices[char]]=1
    y[i,char_indices[next_chars[i]]]=1
from keras import layers
model=keras.models.Sequential()
model.add(layers.LSTM(128,input_shape=(maxlen,len(chars))))
model.add(layers.Dense(len(chars),activation='softmax'))
optimizer=optimizers.RMSprop(lr=0.01)
model.compile(loss='categorical_crossentropy',optimizer=optimizer)
def sample(preds,temperature=1.0):
    preds=np.asarray(preds).astype('float64')
    preds=np.log(preds)/temperature
    exp_preds=np.exp(preds)
    preds=exp_preds/np.sum(exp_preds)
    probas=np.random.multinomial(1,preds,1)
    return np.argmax(probas)
import random
import sys
for epoch in range(1,100):
    print('epoch',epoch)
    model.fit(x,y,batch_size=128,epochs=1)
    start_index=random.randint(0,len(text)-maxlen-1)
    generated_text=text[start_index:start_index+maxlen]
    print('-----Generating with seed:"'+generated_text+'"')
for temperature in [0.2,0.5,1.0,1.2]:
    print('--------temperature: ',temperature)
    sys.stdout.write(generated_text)
    for i in range(400):
        sampled=np.zeros((1,maxlen,len(chars)))
        for t,char in enumerate(generated_text):
            sampled[0,t,char_indices[char]]=1
        preds=model.predict(sampled,verbose=0)[0]
        next_index=sample(preds,temperature)
        next_char=chars[next_index]
        generated_text+=next_char
        generated_text=generated_text[1:]
        sys.stdout.write(next_char)




转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/893493.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号