写给爱人的信
发布时间:2019-07-30 16:59:23
作者:xhs
写给爱人的信:(双lstm(暹罗lstm)模型可以很容易地表示两个短语或两个句子的相似性。输入数据是相似或不同的短语对或句子对,输出是两个词的相似性。相应的隐藏层可以视为单词的语义表示形式。\n下载代码\n\n从批中下载代码:超链接https://github.com/dhwajraj/deep-siamese-text-similiability\n安装gensim工具箱\n升级并修改源代码(因为代码是BAS在1.0之前的先前TensorFlow版本上编辑\n \n修改如下:\n \n \n下载脚本hyperlink tf_upgrade.py并运行以下命令来转换整个目录\npthon tf_upgrade.py--intree deep-siames text primary master/--outtree new_deep_siames \n \n以运行检测或错误报告,修改siamese-net.py如下:\n\n类siamelstm(object):\n“”\n基于lstm的文本相似性深层siamese网络使用字符嵌入层,后跟bilstm和能量损失层。\n“”\n\ndef birnn(self,x,dropout,scope,embedding-size,sequence_length):\n n_input=Embedding_size\nn_steps=sequence_length\nn_hidden=n_steps\nn_layers=3\n准备数据形状以匹配“双向”功能要求\n形状:(batch_size,n_steps,n_input)(?,Seq_len Embedding_-Size \n Required shape:\n_steps \张量形状列表(batch_-size,n_-input \n排列batch_-size和n_-steps\nx=tf。转置(x,(1,0,2))\n将改为(n _步数*批大小n _输入)nx=tf。重塑(x,[-1,n_输入])\n•拆分以获得形状的“n_步”张量列表(批量\u大小,n_输入\nx=tf。split(axis=0,num_或_size_splits=n_steps,value=x)\nprint(x)\n用tensorflow定义lstm单元格\n用tf定义单元格的正向。name_scope(“fw”+scope),tf,variable_scope(“fw+scope”):\nprint(tf)get_variable_scope()。名称\ndef lstm_fw_cell():\nfw_cell=tf。控制。RNN号basiclstmcell(n_hidden forget_bias=1.0,state_is_tuple=true)返回tf。控制。RNN号dropoutwrapper(fw_cell,output_keep_prob=dropout)\nlstm_fw_cell_m=tf。控制。RNN号multirnncell([lstm_fw_cell()在范围内(n_layers)],state_为tuple=true)\n带有tf的单元格的向后方向。name_scope(“bw”+scope),tf,variable_scope(“bw”+scope):\nprint(tf)get_variable_scope()。名称\ndef lstm_bw_cell():\nbw_cell=tf。控制。RNN号basiclstmcell(n_hidden forget_bias=1.0,state_is_tuple=true)返回tf。控制。RNN号dropoutwrapper(bw_cell,output_keep_prob=dropout)\nlstm_bw_cell_m=tf。控制。RNN号multirnncell([lstm_bw_cell()在范围内(n_layers)],state_is_tuple=true)\nget lstm cell output\n the try:\withtf.name_scope(“bw”+scope),tf,variable_scope(“bw”+scope):\nctrib.rnn.static_bidirectional_rnn(lstm_fw_cell_m,lstm_bw_cell_m,x,dtype=tf.float32)\n例外:old tensorflow version只返回not states \noutputs=tf.nn。双向(lstm_fw_cell_m,lstm_bw_cell_m,x,n_dtype=tf.float32)\n返回输出[1]\n\n'、'02b2f362d415dae'、'lgektukq5dpuhjg4mrrqwzfeky5on8s'、0'、'def对比度丢失(self、y、d、batch_大小):\ntmp=y*tf。方块字(d)\n tmp=tf。多用途/后勤与设备车辆(Y,TF.平方(d))\ntmp2=(1-y)*tf.square(tf.最大((1-d),0))\n返回tf。reduce_sum(tmp+tmp2)/batch_size/2 \n \ndef_uu init_uuuu(\self,sequence_length,vocab_size,embedding_size,hidden_units,l2_reg_lambda,batch_size):\n \n输入、输出和退出的文件夹\n占位符(tf.int32,[none,sequence_length],name=“input_x1”)\n占位符(tf.int32,[none,sequence_length],name=“input_x2”)\self.input_y=tf.placeholder(tf.float32,[none],name=“input_y”)\self。dropout_keep_prob=tf.placeholder(tf)float32,name=“dropout_keep_prob”)\n\n跟踪l2正则化丢失(可选)nl2_loss=tf。常量(0.0,name=“l2_loss”)\n\n嵌入层\n与tf。名称范围(“嵌入”):\n选择。W=tf.变量(\ntf.随机统一([词汇大小嵌入大小],1.0,1.0)。\n可跟踪=真,name=“w”)\n选择。嵌入式_chars1=tf.不适用。嵌入查找(self.W,自我。输入“自我”。嵌入式_chars_expanded1=tf。展开“暗显”(自)嵌入字符1,1)。\n选择。嵌入式_chars2=tf。不适用。嵌入查找(self.W,自我。输入_x2)\n自我。嵌入式_chars_expanded2=tf。展开_dims(self)embedded_chars2,1)\n\n·为每个具有tf的过滤器大小创建一个卷积+最大池层。名称_scope(“output”):\self.out1=self.birnn(self.embedded_chars1,self.dropout_keep_prob,“side1”,Embedding_size,sequence_length)\nout2=self.birnn(self.embedded_chars2,self.dropout_keep_prob,“side2”,Embedding_size,sequence_length)\self。短=tf.sqrt(tf)减少和(tf)平方(tf)减去(self)。出局者,自己。out2),1,keep_dims=true))\ndiv(self.distance,tf.add(tf.reduce_sum(tf.square(self.out1),1,keep_dims=true)),tf.reduce_sum(tf.reduce_sum(tf.out2),1,keep_dims=true)))选择。短=tf.重塑(自我。短,[1],name=“short”)\n带tf。名称范围(“loss”):\n选择。损失=自身。对比性损失(自我。自己输入。短,批量\n带tf。名称_scope(“accuracy”):\n更正_predictions=tf。等于(自身短,自我输入\n选择。准确度=tf。reduce_mean(tf)cast(correct_predictions,“float”),name=“accuracy”)\n\n运行代码\n test data person_match.train和person_match.train2已经在下载代码中,这是类似的名称数据集,可用于直接测试和验证算法。\ntraining\npthon“train”。py \n \n培训时,将输出大量内容,可以重定向到文件。培训时间较长,半小时内约50000步。\n培训结束后,会有更多的目录运行和文件验证.txt0\n如果是./运行,则会保存经过良好培训的模型,这会占用大约450米的空间。validation.txt0文件是在培训期间分隔的验证文件,格式为\n\n\ntest\npython eval。py---model runs/1494830689/checkpoints/model-9000---vocab_文件路径。/运行/1494830689/checkpoints/vocab-eval_文件路径验证。txt0 \n输出\n精度:0.62197 \n \n将有大量输出,9000型精度为0.62197,81000型精度为0.737626,150000型精度为0.745707,'02b2f362d415dae'、'lgektukq5dpuhjg4mrrqwzfeky5on8s',0)写给爱人的信
版权声明:本文内容由互联网用户投稿整理编辑发布,不拥有所有权,不承担应有相关法律责任。如果文章、图片有涉嫌抄袭的内容,请发送到邮箱举报,且提供抄袭的相关证据,一但查实,会在24小时删除涉嫌侵权内容。