質問するログイン新規登録

質問編集履歴

9

文字修正

2019/02/06 04:10

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,4 +1,4 @@
1
- 機械学習で言語を学習をさせたいのですが以下のエラーで困っています。調べてみましたがよくわからなかったです。
1
+ 機械学習で言語を学習をさせたいのですが以下のエラーで困っています。
2
2
  jupyter notebookで実行しました。
3
3
 
4
4
  ```python

8

修正

2019/02/06 04:10

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -85,7 +85,6 @@
85
85
 
86
86
  torch.save(model.state_dict(), "wikipedia.model")
87
87
 
88
- ```python
89
88
 
90
89
  ```ValueError Traceback (most recent call last)
91
90
  <ipython-input-29-d4ab6d8de40f> in <module>

7

修正

2019/01/22 12:31

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -85,10 +85,9 @@
85
85
 
86
86
  torch.save(model.state_dict(), "wikipedia.model")
87
87
 
88
- ```
89
- エラー
90
88
  ```python
89
+
91
- ValueError Traceback (most recent call last)
90
+ ```ValueError Traceback (most recent call last)
92
91
  <ipython-input-29-d4ab6d8de40f> in <module>
93
92
  72 model.init_hidden()
94
93
  73

6

修正

2019/01/22 12:31

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,4 @@
1
- ```ここに言語を入力
2
- コード
3
- ```機械学習で言語を学習をさせたいのですが以下のエラーで困っています。調べてみましたがよくわからなかったです。
1
+ 機械学習で言語を学習をさせたいのですが以下のエラーで困っています。調べてみましたがよくわからなかったです。
4
2
  jupyter notebookで実行しました。
5
3
 
6
4
  ```python
@@ -89,9 +87,8 @@
89
87
 
90
88
  ```
91
89
  エラー
92
- ```ここに言語を入力
90
+ ```python
93
- コード
94
- ```ValueError Traceback (most recent call last)
91
+ ValueError Traceback (most recent call last)
95
92
  <ipython-input-29-d4ab6d8de40f> in <module>
96
93
  72 model.init_hidden()
97
94
  73

5

修正

2019/01/22 12:30

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -89,14 +89,16 @@
89
89
 
90
90
  ```
91
91
  エラー
92
+ ```ここに言語を入力
93
+ コード
92
- ValueError Traceback (most recent call last)
94
+ ```ValueError Traceback (most recent call last)
93
- <ipython-input-26-d4ab6d8de40f> in <module>
95
+ <ipython-input-29-d4ab6d8de40f> in <module>
94
96
  72 model.init_hidden()
95
97
  73
96
98
  ---> 74 batch_tensor = torch.tensor(batch_data, device=device)
97
99
  75 input_tensor = batch_tensor[:, :-1]
98
100
  76 target_tensor = batch_tensor[:, 1:].contiguous()
99
101
 
100
- ValueError: expected sequence of length 10 at dim 1 (got 12)
102
+ ValueError: expected sequence of length 12 at dim 1 (got 10)
101
103
 
102
104
  ValueErrorについてどのようにすればいいのかを教えてください。よろしくお願いします。

4

コード修正

2019/01/22 12:29

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -4,7 +4,63 @@
4
4
  jupyter notebookで実行しました。
5
5
 
6
6
  ```python
7
- # Training
7
+ import logging
8
+ import torch
9
+ import torch.nn as nn
10
+ import torch.nn.functional as F
11
+ import torch.optim as optim
12
+ from text_encoder import JapaneseTextEncoder
13
+
14
+
15
+ logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)
16
+ logging.info("Building dictionary and dataset.")
17
+ encoder = JapaneseTextEncoder(corpus, append_eos=True, maxlen=10, padding=True)
18
+ encoder.build()
19
+ logging.info("Done...")
20
+
21
+ n_vocab = len(encoder.word2id)
22
+ EMBEDDING_DIM = HIDDEN_DIM =128
23
+ batch_size = 10
24
+ logging.info("Vocab has %i elements.", n_vocab)
25
+ logging.info("The longest sentence has %i elements.", len(max(encoder.dataset, key=len)))
26
+ device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
27
+ class RNNLM(nn.Module):
28
+ def __init__(self, embedding_dim, hidden_dim, vocab_size, batch_size=10, num_layers=1):
29
+ super(RNNLM, self).__init__()
30
+ self.batch_size = batch_size
31
+ self.num_layers = num_layers
32
+ self.hidden_dim = hidden_dim
33
+
34
+ self.word_embeddings = nn.Embedding(vocab_size, embedding_dim, padding_idx=1)
35
+ self.dropout = nn.Dropout(p=0.5)
36
+
37
+ self.gru = nn.GRU(embedding_dim, hidden_dim, batch_first=True, num_layers=self.num_layers)
38
+
39
+ self.output = nn.Linear(hidden_dim, vocab_size)
40
+
41
+ def init_hidden(self):
42
+ self.hidden_state = torch.zeros(self.num_layers, self.batch_size, self.hidden_dim, device=device)
43
+
44
+ def forward(self, indices):
45
+ embed = self.word_embeddings(indices) # batch_len x sequence_length x embedding_dim
46
+ drop_out = self.dropout(embed)
47
+ if drop_out.dim() == 1:
48
+ drop_out = torch.unsqueeze(drop_out, 1)
49
+ gru_out, self.hidden_state = self.gru(drop_out, self.hidden_state)# batch_len x sequence_length x hidden_dim
50
+ gru_out = gru_out.contiguous()
51
+ return self.output(gru_out)
52
+
53
+
54
+ def train2batch(dataset):
55
+ batch_dataset = []
56
+ for i in range(0, 1350, batch_size):
57
+ batch_dataset.append(dataset[i:i+batch_size])
58
+ return batch_dataset
59
+
60
+ n_epoch = 75000
61
+ model = RNNLM(EMBEDDING_DIM, HIDDEN_DIM, n_vocab).to(device)
62
+ optimizer = optim.SGD(model.parameters(), lr=0.01)
63
+ criterion = nn.CrossEntropyLoss(ignore_index=0)# Training
8
64
  logging.info("Training mode")
9
65
  model.train()
10
66
  for epoch in range(1, n_epoch+1):

3

コードの修正

2019/01/22 12:28

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,9 @@
1
+ ```ここに言語を入力
2
+ コード
1
- 機械学習で言語を学習をさせたいのですが以下のエラーで困っています。調べてみましたがよくわからなかったです。
3
+ ```機械学習で言語を学習をさせたいのですが以下のエラーで困っています。調べてみましたがよくわからなかったです。
2
4
  jupyter notebookで実行しました。
3
5
 
6
+ ```python
4
7
  # Training
5
8
  logging.info("Training mode")
6
9
  model.train()
@@ -28,6 +31,7 @@
28
31
 
29
32
  torch.save(model.state_dict(), "wikipedia.model")
30
33
 
34
+ ```
31
35
  エラー
32
36
  ValueError Traceback (most recent call last)
33
37
  <ipython-input-26-d4ab6d8de40f> in <module>

2

実行環境の追加

2019/01/22 11:26

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,4 +1,6 @@
1
1
  機械学習で言語を学習をさせたいのですが以下のエラーで困っています。調べてみましたがよくわからなかったです。
2
+ jupyter notebookで実行しました。
3
+
2
4
  # Training
3
5
  logging.info("Training mode")
4
6
  model.train()

1

修正

2019/01/22 11:15

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
File without changes