xml地图|网站地图|网站标签 [设为首页] [加入收藏]

正规赌博平台

当前位置:网上十大正规赌博平台 > 正规赌博平台 > sql语句之随机查询记录和批量插入,通过keras例子

sql语句之随机查询记录和批量插入,通过keras例子

来源:http://www.nb-machinery.com 作者:网上十大正规赌博平台 时间:2019-09-25 22:09

题目描述

FJ is about to take his N (1 ≤ N ≤ 30,000) cows to the annual"Farmer of the Year" competition. In this contest every farmer arranges his cows in a line and herds them past the judges.

The contest organizers adopted a new registration scheme this year: simply register the initial letter of every cow in the order they will appear (i.e., If FJ takes Bessie, Sylvia, and Dora in that order he just registers BSD). After the registration phase ends, every group is judged in increasing lexicographic order according to the string of the initials of the cows' names.

FJ is very busy this year and has to hurry back to his farm, so he wants to be judged as early as possible. He decides to rearrange his cows, who have already lined up, before registering them.

FJ marks a location for a new line of the competing cows. He then proceeds to marshal the cows from the old line to the new one by repeatedly sending either the first or last cow in the (remainder of the) original line to the end of the new line. When he's finished, FJ takes his cows for registration in this new order.

Given the initial order of his cows, determine the least lexicographic string of initials he can make this way.

每次只能从两边取,要求取出来之后字典序最小

正文

一个强大而流行的循环神经网络的变种是长短期模型网络。

它使用广泛,因为它的架构克服了困扰着所有周期性的神经网络梯度消失梯度爆炸的问题,允许创建非常大的、非常深的网络。

与其他周期性的神经网络一样,LSTM网络保持状态,在keras框架中实现这一点的细节可能会令人困惑。

在这篇文章中,您将会确切地了解到在LSTM网络中,如何在LSTM深度学习库中维护状态。

 本文目标:

  1. 怎么在keras上实现一个普通的lstm循环神经网络
  2. 在lstm中怎样小心的利用好时间状态特征
  3. 怎样在lstm上实现状态的预测

本文在一个很简单的例子上说明lstm的使用和lstm的特点,通过对这个简化例子的理解,可以帮助我们对一般的序列预测问题和序列预测问题有更高的理解和使用。
用到的库:Keras 2.0.2,TensorFlow 1.0.1Theano 0.9.0.

本周遇到了好几次数据库方面的问题,一个是上一篇文章提到的因为要修改数据结构引起的在表间复制字段的需求,另一个就是这篇文章要写的:1,从某个数据表中按照某个字段不重复的随机选取几百条记录;2,然后把这些记录和另外一些值组成完整的行记录插入到数据表中。

输入输出格式

输入格式:

* Line 1: A single integer: N

* Lines 2..N 1: Line i 1 contains a single initial of the cow in the ith position in the original line

输出格式:

The least lexicographic string he can make. Every line (except perhaps the last one) contains the initials of 80 cows in the new line.

问题描述:学习字母

在本教程中,我们将开发和对比许多不同的LSTM循环神经网络模型。

这些比较的背景是学习字母表的一个简单的序列预测问题。也就是说,根据字母表的字母,可以预测字母表的下一个字母。

这是一个简单的序列预测问题,一旦被理解,就可以被推广到其他的序列预测问题,如时间序列预测和序列分类。

让我们用一些python代码来准备这个问题,我们可以从示例中重用这些代码。

首先,让我们导入本教程中计划使用的所有类和函数。

  1. import numpy
  2. from keras.models import Sequential
  3. from keras.layers import Dense
  4. from keras.layers import LSTM
  5. from keras.utils import np_utils

接下来,我们可以对随机数生成器选定随机数种子,以确保每次执行代码时结果都是相同的。

  1. # fix random seed for reproducibility
  2. numpy.random.seed

我们现在可以定义我们的数据集,字母表。为了便于阅读,我们用大写字母来定义字母表。

神经网络是对数字建模,因此我们需要将字母表中的字母映射到整数值。我们可以很容易地通过创建字母索引的字典到字符。我们还可以创建一个反向查找,以便将预测转换回字符,以便稍后使用。

  1. # define the raw dataset
  2. alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  3. # create mapping of characters to integers (0-25) and the reverse
  4. char_to_int = dict((c, i) for i, c in enumerate)
  5. int_to_char = dict((i, c) for i, c in enumerate)

现在我们需要创建我们的输入和输出键值对来训练我们的神经网络。我们可以通过定义输入序列长度,然后从输入字母序列中读取序列来实现这一点。

例如,我们使用的输入长度是1。从原始输入数据的开始,我们可以读出第一个字母A和下一个字母“B”。我们沿着一个字符移动,直到我们到达一个“Z”的预测。

我们先创造这样一个数据集,用一个字母,来预测下一个字母是什么。

  1. # prepare the dataset of input to output pairs encoded as integers
  2. seq_length = 1
  3. dataX = []
  4. dataY = []
  5. for i in range(0, len - seq_length, 1):
  6. seq_in = alphabet[i:i seq_length]
  7. seq_out = alphabet[i seq_length]
  8. dataX.append([char_to_int[char] for char in seq_in])
  9. dataY.append(char_to_int[seq_out])
  10. print seq_in, '->', seq_out

我们运行上面的代码,来观察现在我们的input和output数据集是这样一种情况

  1. A -> B
  2. B -> C
  3. C -> D
  4. D -> E
  5. E -> F
  6. F -> G
  7. G -> H
  8. H -> I
  9. I -> J
  10. J -> K
  11. K -> L
  12. L -> M
  13. M -> N
  14. N -> O
  15. O -> P
  16. P -> Q
  17. Q -> R
  18. R -> S
  19. S -> T
  20. T -> U
  21. U -> V
  22. V -> W
  23. W -> X
  24. X -> Y
  25. Y -> Z

input是一个一个字母的序列,output是一个一个的序列。
ok,就在这样的数据集上来应用我们的lstm。看看会有什么结果?

这时候dataX是一个一个用字母组成的序列,但是还要转换一下格式,才能用到keras上。我们需要将NumPy数组重新构造为LSTM网络所期望的格式,即[samples示例, time steps时间步数, features特征]。

  1. # reshape X to be [samples, time steps, features]
  2. X = numpy.reshape(dataX, (len, seq_length, 1))

然后我们需要把我们的整数值归一化到0~1的区间上,这是LSTM网络使用的s形激活函数的范围。

  1. # normalize
  2. X = X / float(len)

最后,我们可以把这个问题看作是一个序列分类任务,其中26个字母代表一个不同的类。因此,我们用keras的内置的 to_categorical()函数把输出output进行 one-hot编码(one-hot指n维单位向量a=(0,…,0,1,0,…,0))作为输出层的结果。

  1. # one hot encode the output variable
  2. y = np_utils.to_categorical

现在我们已经准备好去训练不同的LSTM模型了。

1,事出有因

输入输出样例

输入样例#1:复制

6ACDBCB

输出样例#1:复制

ABCBCD


开始的时候以为是个逗比贪心左边右边选最小的后来发现我逗比了。。。
然后就开始脑补SA,
对于一个字符串我们把它的后缀数组和前缀数组找出来慢慢比较。
但是这样需要写两个SA,而且两个后缀数组比rank也不好比
于是去%了一下学长,发现原来可以把字符串翻转后复制到字符串前面
这样利用一个SA就可以解决了
比的话直接比rank
注意这里题目有误,每输出80个字符需要输出一个换行!!!!(害的我多调了半个小时。)

#include<cstring>#include<iostream>#include<cstdio>using namespace std;const int MAXN=1e6 10;int N,M;int sa[MAXN],tax[MAXN],tp[MAXN],rak[MAXN],a[MAXN];void Qsort(){    for(int i=0;i<=M;i  ) tax[i]=0;    for(int i=1;i<=N;i  ) tax[rak[i]]  ;    for(int i=1;i<=M;i  ) tax[i] =tax[i-1];    for(int i=N;i>=1;i--)         sa[ tax[rak[tp[i]]]-- ] = tp[i];}void Ssort(){    M=450;    N=N<<1|1;    for(int i=1;i<=N;i  ) rak[i]=a[i],tp[i]=i;Qsort();    for(int w=1,p=0;p<N;M=p,w<<=1)    {            p=0;        for(int i=N-w 1;i<=N;i  ) tp[  p]=i;        for(int i=1;i<=N;i  ) if(sa[i]>w) tp[  p]=sa[i]-w;        Qsort();        swap;        rak[sa[1]]=p=1;                for(int i=2;i<=N;i  ) rak[sa[i]]=(tp[sa[i]]==tp[sa[i-1]]&&tp[sa[i] w]==tp[sa[i-1] w])?p:  p;                }    //for(int i=1;i<=N;i  )     //    printf("%d ",rak[i]);    int l=1,r=N/2 2,tot=0;    while(tot<N/2)     {        tot  ,rak[l]<rak[r]?printf("%c",a[l  ] 'A'-1):printf("%c",a[r  ] 'A'-1);        if(tot
			  

本文由网上十大正规赌博平台发布于正规赌博平台,转载请注明出处:sql语句之随机查询记录和批量插入,通过keras例子

关键词: mg4355手机版