当前位置: 首页 > news >正文

移动网站开发教程下载网站建设 南昌招标

移动网站开发教程下载,网站建设 南昌招标,网络营销方案设计毕业设计,怎样在百度免费做网站Epoch 4: 100%|███████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.85batch/s, acc18.5, loss5.8] [5] loss: 5.828, accuracy: 18.389 , lr:0.001000 Epoch 5: 100%|███…Epoch 4: 100%|███████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.85batch/s, acc18.5, loss5.8] [5] loss: 5.828, accuracy: 18.389 , lr:0.001000 Epoch 5: 100%|██████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.84batch/s, acc19.2, loss5.68] [6] loss: 5.739, accuracy: 18.732 , lr:0.001000 Epoch 6: 100%|██████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.85batch/s, acc19.6, loss5.57] [7] loss: 5.629, accuracy: 19.197 , lr:0.001000 Epoch 7: 100%|██████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.88batch/s, acc19.9, loss5.45] [8] loss: 5.517, accuracy: 19.745 , lr:0.001000 Epoch 8: 100%|██████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.84batch/s, acc20.4, loss5.38] [9] loss: 5.402, accuracy: 20.316 , lr:0.001000 Epoch 9: 100%|████████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.83batch/s, acc21, loss5.27] [10] loss: 5.299, accuracy: 20.887 , lr:0.001000 Epoch 10: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.87batch/s, acc21.8, loss5.16] [11] loss: 5.210, accuracy: 21.427 , lr:0.001000 Epoch 11: 100%|██████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.84batch/s, acc22.2, loss5.1] [12] loss: 5.136, accuracy: 21.923 , lr:0.001000 Epoch 12: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.85batch/s, acc22.5, loss5.06] [13] loss: 5.071, accuracy: 22.379 , lr:0.001000 Epoch 13: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.85batch/s, acc22.9, loss5.02] [14] loss: 5.011, accuracy: 22.819 , lr:0.001000 Epoch 14: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.82batch/s, acc23.3, loss4.94] [15] loss: 4.959, accuracy: 23.212 , lr:0.001000 Epoch 15: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.87batch/s, acc23.7, loss4.91] [16] loss: 4.910, accuracy: 23.564 , lr:0.001000 Epoch 16: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.86batch/s, acc24.3, loss4.82] [17] loss: 4.862, accuracy: 23.914 , lr:0.001000 Epoch 17: 100%|███████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.82batch/s, acc24, loss4.83] [18] loss: 4.818, accuracy: 24.228 , lr:0.001000 Epoch 18: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.82batch/s, acc24.7, loss4.77] [19] loss: 4.775, accuracy: 24.523 , lr:0.001000 Epoch 19: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.83batch/s, acc24.6, loss4.73] [20] loss: 4.734, accuracy: 24.808 , lr:0.001000 Epoch 20: 100%|███████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.88batch/s, acc25, loss4.69] [21] loss: 4.694, accuracy: 25.090 , lr:0.001000 Epoch 21: 100%|███████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.85batch/s, acc25, loss4.71] [22] loss: 4.657, accuracy: 25.346 , lr:0.001000 Epoch 22: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.82batch/s, acc25.8, loss4.62] [23] loss: 4.619, accuracy: 25.587 , lr:0.001000 Epoch 23: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.86batch/s, acc25.9, loss4.59] [24] loss: 4.584, accuracy: 25.825 , lr:0.001000 Epoch 24: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.85batch/s, acc26.3, loss4.52] [25] loss: 4.549, accuracy: 26.078 , lr:0.001000 Epoch 25: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.84batch/s, acc26.3, loss4.53] [26] loss: 4.516, accuracy: 26.280 , lr:0.001000 Epoch 26: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.85batch/s, acc26.6, loss4.49] [27] loss: 4.483, accuracy: 26.517 , lr:0.001000 Epoch 27: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.85batch/s, acc26.8, loss4.46] [28] loss: 4.451, accuracy: 26.746 , lr:0.001000 Epoch 28: 100%|███████████████████████████████████████████████████████| 63/63 [1:00:0700:00, 57.26s/batch, acc27.1, loss4.41] [29] loss: 4.422, accuracy: 26.937 , lr:0.001000 Epoch 29: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.88batch/s, acc27.2, loss4.38] [30] loss: 4.389, accuracy: 27.182 , lr:0.001000 Epoch 30: 100%|████████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.88batch/s, acc27, loss4.4] [31] loss: 4.361, accuracy: 27.371 , lr:0.001000 Epoch 31: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.87batch/s, acc27.5, loss4.34] [32] loss: 4.332, accuracy: 27.589 , lr:0.001000 Epoch 32: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.86batch/s, acc27.6, loss4.31] [33] loss: 4.304, accuracy: 27.791 , lr:0.001000 Epoch 33: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.89batch/s, acc27.9, loss4.28] [34] loss: 4.277, accuracy: 28.014 , lr:0.001000 Epoch 34: 100%|███████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.84batch/s, acc28, loss4.26] [35] loss: 4.248, accuracy: 28.200 , lr:0.001000 Epoch 35: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.83batch/s, acc28.6, loss4.22] [36] loss: 4.222, accuracy: 28.433 , lr:0.001000 Epoch 36: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.86batch/s, acc28.3, loss4.21] [37] loss: 4.196, accuracy: 28.625 , lr:0.001000 Epoch 37: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.88batch/s, acc29.1, loss4.16] [38] loss: 4.169, accuracy: 28.858 , lr:0.001000 Epoch 38: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.84batch/s, acc29.2, loss4.13] [39] loss: 4.142, accuracy: 29.056 , lr:0.001000 Epoch 39: 100%|███████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.84batch/s, acc29, loss4.13] [40] loss: 4.116, accuracy: 29.282 , lr:0.001000 Epoch 40: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.85batch/s, acc29.5, loss4.12] [41] loss: 4.092, accuracy: 29.477 , lr:0.001000 Epoch 41: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.87batch/s, acc29.7, loss4.08] [42] loss: 4.066, accuracy: 29.716 , lr:0.001000 Epoch 42: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.84batch/s, acc29.8, loss4.06] [43] loss: 4.042, accuracy: 29.918 , lr:0.001000 Epoch 43: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.84batch/s, acc30.5, loss3.99] [44] loss: 4.016, accuracy: 30.146 , lr:0.001000 Epoch 44: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.84batch/s, acc30.2, loss4.01] [45] loss: 3.990, accuracy: 30.398 , lr:0.001000 Epoch 45: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.84batch/s, acc30.6, loss3.96] [46] loss: 3.968, accuracy: 30.607 , lr:0.001000 Epoch 46: 100%|█████████████████████████████████████████████████████████| 63/63 [40:0500:00, 38.19s/batch, acc30.6, loss3.96] [47] loss: 3.945, accuracy: 30.814 , lr:0.001000 Epoch 47: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.86batch/s, acc30.9, loss3.94] [48] loss: 3.918, accuracy: 31.073 , lr:0.001000 Epoch 48: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.87batch/s, acc31.1, loss3.91] [49] loss: 3.893, accuracy: 31.322 , lr:0.001000 Epoch 49: 100%|███████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.86batch/s, acc32, loss3.86] [50] loss: 3.869, accuracy: 31.574 , lr:0.001000 Epoch 50: 100%|██████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.85batch/s, acc31.2, loss3.9] [51] loss: 3.846, accuracy: 31.811 , lr:0.001000 Epoch 51: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.88batch/s, acc31.7, loss3.85] [52] loss: 3.823, accuracy: 32.042 , lr:0.001000 Epoch 52: 100%|██████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.85batch/s, acc32.4, loss3.8] [53] loss: 3.798, accuracy: 32.325 , lr:0.001000 Epoch 53: 100%|██████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.84batch/s, acc32.2, loss3.8] [54] loss: 3.776, accuracy: 32.552 , lr:0.001000 Epoch 54: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.88batch/s, acc32.4, loss3.79] [55] loss: 3.755, accuracy: 32.794 , lr:0.001000 Epoch 55: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.84batch/s, acc32.8, loss3.75] [56] loss: 3.729, accuracy: 33.081 , lr:0.001000 Epoch 56: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.84batch/s, acc32.8, loss3.74] [57] loss: 3.708, accuracy: 33.301 , lr:0.001000 Epoch 57: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.84batch/s, acc33.8, loss3.68] [58] loss: 3.683, accuracy: 33.597 , lr:0.001000 Epoch 58: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.85batch/s, acc33.5, loss3.67] [59] loss: 3.661, accuracy: 33.838 , lr:0.001000 Epoch 59: 100%|███████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.87batch/s, acc34, loss3.65] [60] loss: 3.639, accuracy: 34.106 , lr:0.001000 Epoch 60: 100%|███████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.83batch/s, acc34, loss3.65] [61] loss: 3.619, accuracy: 34.350 , lr:0.001000 Epoch 61: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.83batch/s, acc34.1, loss3.64] [62] loss: 3.595, accuracy: 34.632 , lr:0.001000 Epoch 62: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.84batch/s, acc34.6, loss3.57] [63] loss: 3.573, accuracy: 34.872 , lr:0.001000 Epoch 63: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.84batch/s, acc34.8, loss3.58] [64] loss: 3.553, accuracy: 35.140 , lr:0.001000 Epoch 64: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.85batch/s, acc35.1, loss3.53] [65] loss: 3.531, accuracy: 35.394 , lr:0.001000 Epoch 65: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.81batch/s, acc34.8, loss3.56] [66] loss: 3.512, accuracy: 35.636 , lr:0.001000 Epoch 66: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.84batch/s, acc35.1, loss3.55] [67] loss: 3.490, accuracy: 35.896 , lr:0.001000 Epoch 67: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.86batch/s, acc36.1, loss3.49] [68] loss: 3.471, accuracy: 36.147 , lr:0.001000 Epoch 68: 100%|███████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.83batch/s, acc36, loss3.48] [69] loss: 3.451, accuracy: 36.413 , lr:0.001000 Epoch 69: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.84batch/s, acc36.5, loss3.44] [70] loss: 3.436, accuracy: 36.595 , lr:0.001000 Epoch 70: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.83batch/s, acc36.5, loss3.45] [71] loss: 3.412, accuracy: 36.873 , lr:0.001000 Epoch 71: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.83batch/s, acc36.2, loss3.44] [72] loss: 3.393, accuracy: 37.130 , lr:0.001000 Epoch 72: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.86batch/s, acc36.4, loss3.44] [73] loss: 3.375, accuracy: 37.342 , lr:0.001000 Epoch 73: 100%|██████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.82batch/s, acc37.1, loss3.4] [74] loss: 3.355, accuracy: 37.608 , lr:0.001000 Epoch 74: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.83batch/s, acc37.2, loss3.37] [75] loss: 3.337, accuracy: 37.853 , lr:0.001000 Epoch 75: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.81batch/s, acc37.9, loss3.35] [76] loss: 3.318, accuracy: 38.105 , lr:0.001000 Epoch 76: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.83batch/s, acc37.5, loss3.35] [77] loss: 3.303, accuracy: 38.282 , lr:0.001000 Epoch 77: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.87batch/s, acc37.9, loss3.31] [78] loss: 3.285, accuracy: 38.523 , lr:0.001000 Epoch 78: 100%|██████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.83batch/s, acc38.1, loss3.3] [79] loss: 3.267, accuracy: 38.738 , lr:0.001000 Epoch 79: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.84batch/s, acc38.9, loss3.28] [80] loss: 3.250, accuracy: 38.972 , lr:0.001000 Epoch 80: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.83batch/s, acc38.6, loss3.27] [81] loss: 3.230, accuracy: 39.248 , lr:0.001000 Epoch 81: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.86batch/s, acc39.1, loss3.22] [82] loss: 3.216, accuracy: 39.435 , lr:0.001000 Epoch 82: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.83batch/s, acc38.8, loss3.25] [83] loss: 3.197, accuracy: 39.675 , lr:0.001000 Epoch 83: 100%|██████████████████████████████████████████████████████████| 63/63 [00:3800:00, 1.62batch/s, acc39.7, loss3.2] [84] loss: 3.180, accuracy: 39.914 , lr:0.001000 Epoch 84: 100%|██████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.84batch/s, acc39.4, loss3.2] [85] loss: 3.165, accuracy: 40.108 , lr:0.001000 Epoch 85: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.87batch/s, acc40.1, loss3.17] [86] loss: 3.152, accuracy: 40.277 , lr:0.001000 Epoch 86: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.84batch/s, acc39.9, loss3.18] [87] loss: 3.135, accuracy: 40.508 , lr:0.001000 Epoch 87: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.84batch/s, acc40.4, loss3.14] [88] loss: 3.118, accuracy: 40.736 , lr:0.001000 Epoch 88: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.84batch/s, acc40.5, loss3.14] [89] loss: 3.104, accuracy: 40.918 , lr:0.001000 Epoch 89: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.83batch/s, acc40.7, loss3.11] [90] loss: 3.093, accuracy: 41.061 , lr:0.001000 Epoch 90: 100%|██████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.86batch/s, acc40.8, loss3.1] [91] loss: 3.074, accuracy: 41.315 , lr:0.001000 Epoch 91: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.83batch/s, acc41.5, loss3.06] [92] loss: 3.057, accuracy: 41.559 , lr:0.001000 Epoch 92: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.83batch/s, acc41.1, loss3.09] [93] loss: 3.043, accuracy: 41.745 , lr:0.001000 Epoch 93: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.83batch/s, acc41.5, loss3.06] [94] loss: 3.029, accuracy: 41.924 , lr:0.001000 Epoch 94: 100%|███████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.82batch/s, acc42, loss3.03] [95] loss: 3.015, accuracy: 42.133 , lr:0.001000 Epoch 95: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.85batch/s, acc41.6, loss3.04] [96] loss: 3.001, accuracy: 42.302 , lr:0.001000 Epoch 96: 100%|██████████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.82batch/s, acc42, loss3] [97] loss: 2.988, accuracy: 42.483 , lr:0.001000 Epoch 97: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.83batch/s, acc42.9, loss2.96] [98] loss: 2.972, accuracy: 42.694 , lr:0.001000 Epoch 98: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.86batch/s, acc42.1, loss3.01] [99] loss: 2.964, accuracy: 42.804 , lr:0.001000 Epoch 99: 100%|█████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.83batch/s, acc42.2, loss3.01] [100] loss: 2.953, accuracy: 42.973 , lr:0.001000 Finished Training using %.3f seconds 6896.93013882637先训练了100轮次后面应该还能增长但是不等了 数据初探 class DictObj(object):def __init__(self, map):self.map mapdef __getattr__(self, attr):if attr in self.map:return self.map[attr]else:raise AttributeError(No such attribute: attr)Config DictObj({poem_path:os.path.join(base_dir, tang.npz),tensorboard_path:os.path.join(base_dir, tensorboard),model_save_path:os.path.join(base_dir,modelDict),embedding_dim:100,hidden_dim:1024,lr:0.001,LSTM_layers:2,batch_size:512,epochs:500,dropout:0.2,ealier_stop:10,device:torch.device(cuda if torch.cuda.is_available() else cpu) }) def view_data(poem_path):datas np.load(poem_path, allow_pickleTrue)data datas[data] #(57580,125)ix2word datas[ix2word].item() # datas[word2ix].item() 8293word2ix datas[word2ix].item() # datas[word2ix].item() 8293word_data np.zeros((1,data.shape[1]), dtype str) # 将所有的0 转化成 # 看一下其中一行的数据是什么row np.random.randint(0, data.shape[0]) # 随机选一行,左闭右开没问题print(data[row])for i in range(data.shape[1]):word_data[0][i] ix2word[data[row][i]]print(word_data)view_data(Config.poem_path)数据处理 class PoemDataset(Dataset):def __init__(self, poem_path, seq_len):super().__init__()# np 文件的地址self.poem_path poem_path# 序列长度48 是认为规定的也可以是其它值因为大部分是5言或者7言加上表达就是 6或8 取48确保是整句话self.seq_len seq_lenself.poem_data, self.ix2word, self.word2ix self.get_raw_data()self.no_space_data self.filter_space()print(no_space_data len:, self.no_space_data[0:200])def __len__(self):return len(self.no_space_data)//(self.seq_len)def __getitem__(self, idx):txt self.no_space_data[idx*self.seq_len:(idx1)*self.seq_len]label self.no_space_data[idx*self.seq_len1:(idx1)*self.seq_len1]return torch.LongTensor(txt), torch.LongTensor(label)def filter_space(self):# 7197500 个文本tensor_data torch.from_numpy(self.poem_data).view(-1)no_space_data [] for i in range(tensor_data.shape[0]):word_idx tensor_data[i].item()if word_idx! 8292:no_space_data.append(word_idx)return no_space_datadef get_raw_data(self):datas np.load(self.poem_path, allow_pickleTrue)data datas[data]ix2word datas[ix2word].item()word2ix datas[word2ix].item()return data, ix2word, word2ix poem_dataset PoemDataset(Config.poem_path, 96)[8292 8292 8292 8292 8292 8292 8292 8292 8292 8292 8292 8292 8292 82928292 8292 8292 8292 8292 8292 8292 8292 8292 8292 8292 8292 8292 82928292 8292 8292 8292 8292 8292 8292 8292 8292 8292 8292 8292 8292 82928292 8292 8292 8292 8292 8292 8292 8292 8292 8292 8292 8292 8292 82928292 8292 8292 8292 8292 8292 8292 8292 8292 8292 8292 8292 8292 82928292 8292 8292 8292 8292 8292 8292 8292 8292 8292 8292 8292 8292 82928292 8292 8292 8292 8292 8292 8292 8291 5428 6933 3469 7066 3465 64078248 7009 82 7435 925 3469 3576 232 786 5272 2296 7066 4807 61036663 2958 2003 2173 28 7066 1987 8061 4299 848 4874 7435 8290] [[ 冬 月 内 无 叶 艾 枝 枯 。 草 内 急 寻 蛇 床子 烧 烟 入 中 自 消 除 速 救 免 灾 虞 。 ]] no_space_data len: [8291, 6731, 4770, 1787, 8118, 7577, 7066, 4817, 648, 7121, 1542, 6483, 7435, 7686, 2889, 1671, 5862, 1949, 7066, 2596, 4785, 3629, 1379, 2703, 7435, 6064, 6041, 4666, 4038, 4881, 7066, 4747, 1534, 70, 3788, 3823, 7435, 4907, 5567, 201, 2834, 1519, 7066, 782, 782, 2063, 2031, 846, 7435, 8290, 8291, 2309, 2596, 6483, 2260, 7316, 7066, 6332, 5274, 2125, 5029, 7792, 7435, 4186, 8087, 7047, 6622, 6933, 7066, 6134, 3564, 3766, 6920, 6157, 7435, 7086, 4770, 5849, 4776, 4981, 7066, 4857, 2649, 3020, 332, 1727, 7435, 7458, 7294, 3465, 5149, 1671, 7066, 2834, 6000, 3942, 3534, 1534, 7435, 4102, 7460, 758, 3961, 3374, 7066, 7904, 6811, 4449, 2121, 6802, 7435, 6182, 27, 7912, 1756, 7440, 7066, 201, 7909, 8118, 201, 4662, 7435, 7824, 1508, 3154, 152, 5862, 7066, 7976, 6043, 258, 47, 7878, 7435, 8290, 8291, 3495, 70, 7113, 4839, 5237, 7066, 65, 3941, 2031, 2260, 5418, 7435, 411, 6773, 2878, 4686, 482, 7066, 1989, 5617, 4992, 8245, 676, 7435, 4236, 1418, 4915, 7686, 7363, 7066, 5708, 7541, 7440, 5237, 2192, 7435, 3114, 5913, 7989, 3069, 1845, 7066, 7047, 3534, 4921, 6622, 6933, 7435, 1664, 2260, 2003, 4816, 7151, 7066, 5036, 2219, 5849, 4898, 174, 7435, 201, 7228, 222]因为有空格啥的要先吧空格之类的去掉。 def show_dataset():idx,label poem_dataset[0]for id in idx:print(poem_dataset.ix2word[id.item()], end )print(\n)for la in label:print(poem_dataset.ix2word[la.item()], end )START 度 门 能 不 访 冒 雪 屡 西 东 。 已 想 人 如 玉 遥 怜 马 似 骢 。 乍 迷 金 谷 路 稍 变 上 阳 宫 。 还 比 相 思 意 纷 纷 正 满 空 。 EOP START 逍 遥 东 城 隅 双 树 寒 葱 蒨 。 广 庭 流 华 月 高 阁 凝 余 霰 。 杜 门 非 养 素 抱 疾 阻 良 䜩 。 孰 谓 无 他 人 思 君 岁 度 门 能 不 访 冒 雪 屡 西 东 。 已 想 人 如 玉 遥 怜 马 似 骢 。 乍 迷 金 谷 路 稍 变 上 阳 宫 。 还 比 相 思 意 纷 纷 正 满 空 。 EOP START 逍 遥 东 城 隅 双 树 寒 葱 蒨 。 广 庭 流 华 月 高 阁 凝 余 霰 。 杜 门 非 养 素 抱 疾 阻 良 䜩 。 孰 谓 无 他 人 思 君 岁 云# 构建模型 class PoemModel(nn.Module):def __init__(self, vocab_size, embedding_dim, hidden_dim, num_layers, dropout):super().__init__()self.embedding nn.Embedding(vocab_size, embedding_dim)self.lstm nn.LSTM(embedding_dim, hidden_dim, num_layers, dropoutdropout, batch_firstTrue)self.dropout nn.Dropout(dropout)self.fc nn.Linear(hidden_dim, vocab_size)def forward(self, input, hiddenNone):embeds self.embedding(input)batch_size,seq_len,embedding_dim embeds.shapeif hidden is None:h0 torch.zeros(Config.LSTM_layers, batch_size, Config.hidden_dim).to(Config.device)c0 torch.zeros(Config.LSTM_layers, batch_size, Config.hidden_dim).to(Config.device)else:h0,c0 hiddenoutput, hidden self.lstm(embeds, (h0, c0))# output torch.tanh(self.dropout(self.fc1(output)))output self.fc(output)return output, hiddenvocab_size len(poem_dataset.word2ix) model PoemModel(vocab_size, Config.embedding_dim, Config.hidden_dim, Config.LSTM_layers, Config.dropout).to(Config.device) input_data, label_data next(iter(dataloader)) print(input_data.shape, label_data.shape) output, hidden model(input_data.to(Config.device)) # output.shape torch.Size([1024, 96, 8293]) hidden[0].shape torch.Size([3, 1024, 1024]) hidden[1].shape torch.Size([3, 1024, 1024]) label_data.shape torch.Size([1024, 96]) a 1def accuracy(output, label_data):pred output.argmax(dim2)correct (pred label_data).sum().item()total label_data.numel()return correct / total * 100 # 训练模型 criterion nn.CrossEntropyLoss() optimizer optim.Adam(model.parameters(), lrConfig.lr) scheduler optim.lr_scheduler.StepLR(optimizer, step_size100, gamma1) def train(model, dataloader, criterion, optimizer, scheduler, epochs):if not os.path.exists(Config.model_save_path):os.makedirs(Config.model_save_path)best_acc 0.0early_stop 0start_time time.time()for epoch in range(epochs):model.train()running_loss 0.0running_acc 0.0last_acc 0.0with tqdm(dataloader, unitbatch) as tepoch:for input_data, label_data in tepoch:tepoch.set_description(fEpoch {epoch})input_data, label_data input_data.to(Config.device), label_data.to(Config.device)optimizer.zero_grad()output, hidden model(input_data)current_acc accuracy(output, label_data)running_acc current_accloss criterion(output.view(-1, vocab_size), label_data.view(-1))loss.backward()optimizer.step()running_loss loss.item()tepoch.set_postfix(lossloss.item(), acccurrent_acc)scheduler.step()last_acc running_acc / len(dataloader)if last_acc best_acc:best_acc last_acctorch.save(model.state_dict(), os.path.join(Config.model_save_path, best_model.pth))else:early_stop 1torch.save(model.state_dict(), os.path.join(Config.model_save_path, last_model.pth))print([%d] loss: %.3f, accuracy: %.3f , lr:%.6f % (epoch 1, running_loss / len(dataloader), last_acc,scheduler.get_last_lr()[0]))if early_stop Config.ealier_stop:print(Early Stop)print(Best Accuracy: %.3f % best_acc)breakprint(Finished Training using %.3f seconds, time.time() - start_time) train(model, dataloader, criterion, optimizer, scheduler, Config.epochs) 模型构建以及训练如上 现在看 500轮次50个忍耐度的效果比较好 Epoch 145: 100%|██████████████████████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.81batch/s, acc61.6, loss1.62] [146] loss: 1.580, accuracy: 62.374 , lr:0.001000 Epoch 146: 100%|██████████████████████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.80batch/s, acc62.5, loss1.57] [147] loss: 1.581, accuracy: 62.360 , lr:0.001000 Epoch 147: 100%|██████████████████████████████████████████████████████████████████████████| 63/63 [00:0700:00, 8.83batch/s, acc61.9, loss1.61] [148] loss: 1.582, accuracy: 62.324 , lr:0.001000 Early Stop Best Accuracy: 62.397 Finished Training using %.3f seconds 1205.000694513321使用效果 不满意的地方写死96seq_len 是不对的。 应该是 配合 padding 使用并mask padding来指导损失 todo 下一篇文章我会搞定 import torch from train03 import Config from train03 import PoemModelfrom train03 import PoemDataset import ospoem_dataset PoemDataset(Config.poem_path, 96)vocab_size len(poem_dataset.word2ix) model PoemModel(vocab_size, Config.embedding_dim, Config.hidden_dim, Config.LSTM_layers, Config.dropout).to(Config.device) model.load_state_dict(torch.load(os.path.join(Config.model_save_path, best_model.pth)))def generate(model, start_words, ix2word, word2ix, device):results list(start_words)start_words_len len(start_words)# 第一个词语是STARTinput torch.Tensor([word2ix[START]]).view(1, 1).long()# 最开始的隐状态初始为0矩阵# torch.zeros(Config.LSTM_layers, batch_size, Config.hidden_dim)hidden torch.zeros((2,Config.LSTM_layers * 1, 1, Config.hidden_dim), dtypetorch.float32).to(Config.device)input input.to(Config.device)hidden hidden.to(Config.device)model.eval()with torch.no_grad():for i in range(48):output, hidden model(input, hidden)# 如果在给定的句首中input为句首中的下一个字if i start_words_len:w results[i]input input.data.new([word2ix[w]]).view(1, 1)else:top_index output.data[0].topk(1)[1][0].item()w ix2word[top_index]results.append(w)input input.data.new([top_index]).view(1, 1)if w EOP:del results[-1]breakreturn results雨 余 虚 馆 竹 阴 清 独 坐 寒 窗 昼 未 醒 。 云 布 远 村 红 叶 返 水 深 秋 竹 翠 梢 寒 。 泉 声 入 阁 慙 嘉 石 山 色 题 诗 好 赋 诗 。 但是我有一点不太理解。 他是输入一个字输出一个字这一点好像不妥。不应该是 输入一个 生成1个 然后输入两个生成1个然后输入3个生成1个么。。。 大神请指教一下吧。
http://www.w-s-a.com/news/532255/

相关文章:

  • 网站如何做微信支付链接做暧小视频xo免费网站
  • SEO案例网站建设重庆建站模板平台
  • 上海seo网站推广公司wordpress 小米商城主题
  • 搭建服务器做网站什么网站可以请人做软件
  • 上海建筑建材业网站迁移公家网站模板
  • 仿制别人的网站违法吗网站防火墙怎么做
  • 杨浦网站建设 网站外包公司如何进行网络推广
  • wordpress+仿站步骤超详细wordpress常用函数
  • 浙江手机版建站系统哪个好怎样黑进别人的网站
  • 企业网站搜索引擎推广方法装修网络公司
  • 网站运营优化建议wordpress 添加媒体
  • 用asp.net做网站计数器施工企业会计的内涵
  • 网站被黑咋样的网站建设 设计业务范围
  • 网站开发学哪种语言网站编辑器失效
  • WordPress插件提示信息江阴网站优化
  • 网站开发用的软件如何做网站内容管理
  • 扬州网站建设公司网站推广是什么岗位
  • 双线网站管理咨询公司是做什么
  • asia域名的网站贵州光利达建设工程有限公司局网站
  • 梅州南站济南做网络安全的公司
  • 网站源代码 phpseo营销推广费用
  • 南京专业制作网站深圳整装装修公司排名
  • 网站制作在哪里比较好网页设计的要点有哪些
  • 自己做网站原始代码高端品牌服装
  • 九度企业网站推广软件龙泉市建设局网站
  • 做个企业网网站怎么做专业3合1网站建设公司
  • 龙岩网站建设teams熊掌号公司网站的实例
  • 电商模板网站免费省级精品课程网站建设
  • 网站建设的规划书桂林生活最新网
  • 广东省建设工程执业中心网站wordpress的分类目录和标签