Python 将神经网络转化为批量训练

Python 将神经网络转化为批量训练,python,deep-learning,neural-network,recurrent-neural-network,Python,Deep Learning,Neural Network,Recurrent Neural Network,我有一个在线的神经网络代码,所以我没有完整的知识来理解它。我正在使用NN进行命名实体识别 这是我的单词嵌入的大小 字形 (38419100) 我正在使用下面的NN words_input = Input(shape=(None,),dtype='int32',name='words_input') words = Embedding(input_dim=wordEmbeddings.shape[0], output_dim=wordEmbeddings.shape[1], weights=[w

我有一个在线的神经网络代码,所以我没有完整的知识来理解它。我正在使用NN进行命名实体识别

这是我的单词嵌入的大小 字形 (38419100)

我正在使用下面的NN

words_input = Input(shape=(None,),dtype='int32',name='words_input')
words = Embedding(input_dim=wordEmbeddings.shape[0], output_dim=wordEmbeddings.shape[1],  weights=[wordEmbeddings], trainable=False)(words_input)

casing_input = Input(shape=(None,), dtype='int32', name='casing_input')
casing = Embedding(output_dim=caseEmbeddings.shape[1], input_dim=caseEmbeddings.shape[0], weights=[caseEmbeddings], trainable=False)(casing_input)

character_input=Input(shape=(None,52,),name='char_input')
embed_char_out=TimeDistributed(Embedding(len(char2Idx),30,embeddings_initializer=RandomUniform(minval=-0.5, maxval=0.5)), name='char_embedding')(character_input)
dropout= Dropout(0.5)(embed_char_out)
conv1d_out= TimeDistributed(Conv1D(kernel_size=3, filters=30, padding='same',activation='tanh', strides=1))(dropout)
maxpool_out=TimeDistributed(MaxPooling1D(52))(conv1d_out)
char = TimeDistributed(Flatten())(maxpool_out)
char = Dropout(0.5)(char)

output = concatenate([words, casing,char])
output = Bidirectional(LSTM(200, return_sequences=True, dropout=0.50, recurrent_dropout=0.25))(output)
output = TimeDistributed(Dense(len(label2Idx), activation='softmax'))(output)

model = Model(inputs=[words_input, casing_input,character_input], outputs=[output])
model.compile(loss='sparse_categorical_crossentropy', optimizer='nadam')
model.summary()
当我试着训练我的模型时,它说我的GPU已经精疲力竭了:tensorflow.python.framework.errors\u impl.resourceExtustederRor

换句话说,嵌入代码使用的是wordEmbedding.shape[0],即38419。这可能是个问题吗??
如何将其转换为批量训练?

在Pertical epoch,NN使用的nd数组(5828,10200)超过1百万(太大了,这是我对GPU的限制)

我写的代码中,如果有任何地方这个限制是用尽它将分为2部分批。所以最后我得到了所有批次的nd阵列,少于1百万,然后它在我的GPU上成功运行