我是tensorflow和机器学习的新手。最近我正在研究一个模型。我的模型如下,
字符级嵌入向量 - >嵌入查找 - > LSTM1
字级嵌入矢量 - >嵌入查找 - > LSTM2
[LSTM1 + LSTM2] - >单层MLP-> softmax层
[LSTM1 + LSTM2] - >单层MLP-> WGAN鉴别器
他的模型代码
当我正在研究这个模型时,我得到了以下错误。我以为我的批次太大了。因此,我尝试将批量大小从20减少到10,但它不起作用。
ResourceExhaustedError(参见上面的回溯):分配时的OOM 张量形状[24760,100] [节点: chars / bidirectional_rnn / bw / bw / while / bw / lstm_cell / split = 拆分[T = DT_FLOAT,num_split = 4, _device = “/作业:本地主机/复制:0 /任务:0 /设备:GPU:0”](gradients_2 / ADD_3 / Y, chars / bidirectional_rnn / bw / bw / while / bw / lstm_cell / BiasAdd)]] [[节点: bi-lstm / bidirectional_rnn / bw / bw / stack / _167 = _Recvclient_terminated = false,recv_device =“/ job:localhost / replica:0 / task:0 / device:CPU:0”, send_device = “/作业:本地主机/复制:0 /任务:0 /设备:GPU:0”, send_device_incarnation = 1, tensor_name = “edge_636_bi-LSTM / bidirectional_rnn /体重/体重/栈”, tensor_type = DT_INT32, _device = “/作业:本地主机/复制:0 /任务:0 /装置:CPU:0”]]
张量与 定型[24760,100] 表示2476000 * 32/8 * 1024 * 1024 = 9.44519043 MB内存。我在titan X(11 GB)GPU上运行代码。怎么可能出错?为什么会发生这种错误?
*额外信息*:LSTM1的大小为100.对于双向LSTM,它变为200。 LSTM2的大小为300.对于双向LSTM,它变为600。
*注意 *:错误发生在32个纪元之后。我的问题是为什么在32个时代之后出现了错误。为什么不在最初的时代。