吴裕雄--天生自然神经网络与深度学习实战Python+Keras+TensorFlow:使用TensorFlow和Keras开发高级自然语言处理系统——LSTM网络原理以及使用LSTM实现人机问答系统

!mkdir'/content/gdrive/MyDrive/conversation''''将文本句子分解成单词,并构建词库'''path='/content/gdrive/MyDrive/conversation/'withopen(path+'question.txt','r')asfopen:text_question=fopen.read().lower().split('')withopen(path+'answer.txt','r')asfopen:text_answer=fopen.read().lower().split('')concat_question=''.join(text_question).split()vocabulary_size_question=len(list(set(concat_question)))data_question,count_question,dictionary_question,rev_dictionary_question=build_dataset(concat_question,vocabulary_size_que...

吴裕雄--天生自然神经网络与深度学习实战Python+Keras+TensorFlow:使用TensorFlow和Keras开发高级自然语言处理系统——RNN网络原理与实现

!pipinstallutils!pipinstallsklearn!mkdir'/content/gdrive/MyDrive/moviereview'!mkdir'/content/gdrive/MyDrive/moviereview/good/'!mkdir'/content/gdrive/MyDrive/moviereview/bad/'fromutilsimport*importtensorflowastfimportsklearnfromsklearnimportdatasetsfromsklearn.model_selectionimporttrain_test_splitimporttimeimportreimportnumpyasnpdefclearstring(string):#只选择包含字母和数字的字符串string=re.sub('[^A-Za-z0-9]+','',string)#把句子分割成多个单词合成的队列string=string.split('')string=filter(None,string)#消除单词首尾空格string=[y.strip()f...

吴裕雄--天生自然神经网络深度学习实战Python+Keras+TensorFlow:使用TensorFlow和Keras开发高级自然语言处理系统——Skip-Gram算法实现

fromgoogle.colabimportdrivedrive.mount('/content/gdrive')!mkdir'/content/gdrive/MyDrive/dataset'path='/content/gdrive/MyDrive/dataset/text8'withopen(path)asft_:full_text=ft_.read()deftext_processing(ft8_text):'''替换掉标点符号'''ft8_text=ft8_text.lower()ft8_text=ft8_text.replace('.','<period>')ft8_text=ft8_text.replace(',','<comma>')ft8_text=ft8_text.replace('"','<quotation>')ft8_text=ft8_text.replace(';','<semicolon>')ft8_text=ft8_text.replace('!','<exclamation>')ft8_text...

吴裕雄--天生自然神经网络深度学习实战Python+Keras+TensorFlow:TensorFlow与神经网络的实现

importtensorflowastfimportnumpyasnp'''初始化运算图,它包含了上节提到的各个运算单元,它将为W,x,b,h构造运算部件,并将它们连接起来'''graph=tf.Graph()#一次tensorflow代码的运行都要初始化一个sessionsession=tf.InteractiveSession(graph=graph)'''我们定义三种变量,一种叫placeholder,它对应输入变量,也就是上节计算图所示的圆圈部分,他们的值在计算开始进行时才确定,这里对应x;一种叫Variables,他们的值一开始就初始化,在后续运算中可以进行更改,这里对应W,b;一种叫immutabletensor,这里对应h,它的值不允许我们直接修改'''x=tf.placeholder(shape=[1,10],dtype=tf.float32,name='x')#将W的各个分量初始化到[-0.1,0.1]之间W=tf.Variable(tf.random_uniform(shape=[10,5],minval=-0.1,maxval=0.1,dtype=tf.float...

吴裕雄--天生自然神经网络深度学习实战Python+Keras+TensorFlow:Bellman函数、贪心算法与增强性学习网络开发实践

!pipinstallgym  importrandomimportnumpyasnpimportmatplotlib.pyplotaspltfromkeras.layersimportDense,Dropout,Activationfromkeras.modelsimportSequentialfromkeras.optimizersimportAdamfromkerasimportbackendasKfromcollectionsimportdequeimportgym#选取互动环境env=gym.make('CartPole-v1')state=env.reset()#0或1表示让小车向不同方向移动action=0#step(action)表示想环境发生命令new_state,reward,done,info=env.step(action)print((new_state,reward,done,info))importrandomimportnumpyasnpimportmatplotlib.pyplotaspltfromkeras.layersimpor...

吴裕雄--天生自然神经网络与深度学习实战Python+Keras+TensorFlow:生成型与条件型生成型对抗网络

fromkeras.layersimportLeakyReLUfromkeras.layersimportBatchNormalizationfromkeras.optimizersimportRMSpropimportmathdefbuild_generator(inputs,image_size):'''生成者网络与编解码网络中的解码器如出一辙,输入给它的一维随机向量相当于输入解码器网络的编码向量,解码器网络将一维向量反向构造成图片所对应的二维向量,这也是生成者要做的工作,所以下面代码与我们做过的解码器网络几乎一模一样'''image_resize=image_size//4kernel_size=5layer_filters=[128,64,32,1]x=Dense(image_resize*image_resize*layer_filters[0])(inputs)x=Reshape((image_resize,image_resize,layer_filters[0]))(x)#构造三层反卷积网络forfiltersinlayer_filters:iffilters>l...

吴裕雄--天生自然神经网络与深度学习实战Python+Keras+TensorFlow:使用自动编解码网络实现黑白图片上色

'''加载cifar10图片集并准备将图片进行灰度化'''fromkeras.datasetsimportcifar10defrgb2gray(rgb):#把彩色图转化为灰度图,如果当前像素点为[r,g,b],那么对应的灰度点为0.299*r+0.587*g+0.114*breturnnp.dot(rgb[...,:3],[0.299,0.587,0.114])(x_train,_),(x_test,_)=cifar10.load_data()img_rows=x_train.shape[1]img_cols=x_train.shape[2]channels=x_train.shape[3]#将100张彩色原图集合在一起显示imgs=x_test[:100]imgs=imgs.reshape((10,10,img_rows,img_cols,channels))imgs=np.vstack([np.hstack(i)foriinimgs])plt.figure()plt.axis('off')plt.title('Originalcolorimages')plt.imshow(imgs...

吴裕雄--天生自然神经网络深度学习实战Python+Keras+TensorFlow:去噪型编码网络

#为图像像素点增加高斯噪音noise=np.random.normal(loc=0.5,scale=0.5,size=x_train.shape)x_train_noisy=x_train+noisenoise=np.random.normal(loc=0.5,scale=0.5,size=x_test.shape)x_test_noisy=x_test+noise#添加噪音值后,像素点值可能会超过1或小于0,我们把这些值调整到[0,1]之间x_train_noisy=np.clip(x_train_noisy,0.,1.)x_test_noisy=np.clip(x_test_noisy,0.,1.)autoencoder=Model(inputs,decoder(encoder(inputs)),name='autoencoder')autoencoder.compile(loss='mse',optimizer='adam')autoencoder.fit(x_train_noisy,x_train,validation_data=(x_test_noisy,x_test),ep...

吴裕雄--天生自然神经网络深度学习实战Python+Keras+TensorFlow:自动编解码器网络的原理与实现

fromkeras.layersimportDense,Inputfromkeras.layersimportConv2D,Flattenfromkeras.layersimportReshape,Conv2DTransposefromkeras.modelsimportModelfromkeras.datasetsimportmnistfromkerasimportbackendasKimportnumpyasnpimportmatplotlib.pyplotasplt#加载手写数字图片数据(x_train,_),(x_test,_)=mnist.load_data()image_size=x_train.shape[1]#把图片大小统一转换成28*28,并把像素点值都转换为[0,1]之间x_train=np.reshape(x_train,[-1,image_size,image_size,1])x_test=np.reshape(x_test,[-1,image_size,image_size,1])x_train=x_train.astype('float32')/255x_t...

吴裕雄--天生自然神经网络深度学习实战Python+Keras+TensorFlow:RNN和CNN混合的鸡尾酒疗法提升网络运行效率

fromkeras.layersimportmodel=Sequential()model.add(embedding_layer)#使用一维卷积网络切割输入数据,参数5表示每各个单词作为切割小段model.add(layers.Conv1D(32,5,activation='relu'))#参数3表示,上层传下来的数据中,从每3个数值中抽取最大值model.add(layers.MaxPooling1D(3))#添加一个有记忆性的GRU层,其原理与LSTM相同,运行速度更快,准确率有所降低model.add(layers.GRU(32,dropout=0.1))model.add(layers.Dense(len(int_category),activation='softmax'))#对于输出多个分类结果,最好的损失函数是categorical_crossentropymodel.compile(optimizer='rmsprop',loss='categorical_crossentropy',metrics=['accuracy'])history=model.fit(x_t...

吴裕雄--天生自然神经网络深度学习实战Python+Keras+TensorFlow:LSTM网络层详解及其应用

fromkeras.layersimportLSTMmodel=Sequential()model.add(embedding_layer)model.add(LSTM(32))#当结果是输出多个分类的概率时,用softmax激活函数,它将为30个分类提供不同的可能性概率值model.add(layers.Dense(len(int_category),activation='softmax'))#对于输出多个分类结果,最好的损失函数是categorical_crossentropymodel.compile(optimizer='rmsprop',loss='categorical_crossentropy',metrics=['accuracy'])history=model.fit(x_train,y_train,epochs=20,validation_data=(x_val,y_val),batch_size=512)acc=history.history['acc']val_acc=history.history['val_acc']loss=history.history...

吴裕雄--天生自然神经网络深度学习实战Python+Keras+TensorFlow:RNN-具有记忆功能的神经网络

fromkeras.layersimportSimpleRNNmodel=Sequential()model.add(embedding_layer)model.add(SimpleRNN(32))#当结果是输出多个分类的概率时,用softmax激活函数,它将为30个分类提供不同的可能性概率值model.add(layers.Dense(len(int_category),activation='softmax'))#对于输出多个分类结果,最好的损失函数是categorical_crossentropymodel.compile(optimizer='rmsprop',loss='categorical_crossentropy',metrics=['accuracy'])history=model.fit(x_train,y_train,epochs=20,validation_data=(x_val,y_val),batch_size=512)acc=history.history['acc']val_acc=history.history['val_acc']loss=histo...

吴裕雄--天生自然神经网络深度学习实战Python+Keras+TensorFlow:使用训练好的单词向量实现新闻摘要分类

importpandasaspddf=pd.read_json('/Users/chenyi/Documents/News_Category_Dataset.json',lines=True)df.head()df.category=df.category.map(lambdax:"WORLDPOST"ifx=="THEWORLDPOST"elsex)categories=df.groupby('category')print("totalcategories:",categories.ngroups)print(categories.size())fromkeras.preprocessingimportsequencefromkeras.preprocessing.textimportTokenizer,text_to_word_sequence,one_hotdf['text']=df.headline+""+df.short_description#将单词进行标号tokenizer=Tokenizer()tokenizer.fit_on_texts(df.text)X=toke...

吴裕雄--天生自然神经网络深度学习实战Python+Keras+TensorFlow:概率论的一些重要概念

importmatplotlib.pyplotaspltimportnumpyasnpimportmatplotlib.mlabasmlabimportmathmu=0variance=1sigma=math.sqrt(variance)x=np.linspace(mu-3*sigma,mu+3*sigma,100)plt.plot(x,mlab.normpdf(x,mu,sigma))plt.show()importscipy,scipy.statsx=scipy.linspace(0,10,11)pmf=scipy.stats.binom.pmf(x,10,0.5)importpylabpylab.plot(x,pmf) ...

吴裕雄--天生自然神经网络深度学习实战Python+Keras+TensorFlow:自然语言处理Word Embedding 单词向量化

importnumpyasnpsamples=['Thecatjumpoverthedog','Thedogatemyhomework']#我们先将每个单词放置到一个哈希表中token_index={}forsampleinsamples:#将一个句子分解成多个单词forwordinsample.split():ifwordnotintoken_index:token_index[word]=len(token_index)+1#设置句子的最大长度max_length=10results=np.zeros((len(samples),max_length,max(token_index.values())+1))fori,sampleinenumerate(samples):forj,wordinlist(enumerate(sample.split()))[:max_length]:index=token_index.get(word)results[i,j,index]=1.print("{0}->{1}".format(word,results[i,j]))fromkera...
首页上一页...1011121314...下一页尾页