質問編集履歴

7

追記

2021/01/25 02:06

投稿

eg_0615
eg_0615

スコア0

test CHANGED
File without changes
test CHANGED
@@ -44,6 +44,8 @@
44
44
 
45
45
  //Agentの動作
46
46
 
47
+ //別のスクリプトからRequestDecisionを送っています
48
+
47
49
 
48
50
 
49
51
  namespace Conect4Agent

6

追記

2021/01/25 02:05

投稿

eg_0615
eg_0615

スコア0

test CHANGED
File without changes
test CHANGED
@@ -20,7 +20,7 @@
20
20
 
21
21
  追記
22
22
 
23
- 自分なりに調べて上のようなコードから下のコードに変えましたが変わりはありませんでした。
23
+ 自分なりに調べて上のようなコードから下のコードに変えましたが変わりはありませんでした。無駄の多い汚いコードかもしれませんがよろしくお願いします。
24
24
 
25
25
 
26
26
 

5

コードの更新(未解決)

2021/01/25 01:56

投稿

eg_0615
eg_0615

スコア0

test CHANGED
@@ -1 +1 @@
1
- ML-AgentsにおいてvectorActionが0しか返ない
1
+ ML-Agentsにおいてが0しか返ってこない
test CHANGED
@@ -1,4 +1,4 @@
1
- 動作確認のため再生モードにするとvectorActionが0の場合の行動のみを繰り返してしまいます。(本当は0~6が欲しい)
1
+ 動作確認のため再生モードにすると0の場合の行動のみを繰り返してしまいます。(本当は0~6が欲しい)
2
2
 
3
3
  Behavior Parameters は
4
4
 
@@ -18,6 +18,12 @@
18
18
 
19
19
 
20
20
 
21
+ 追記
22
+
23
+ 自分なりに調べて上のようなコードから下のコードに変えましたが変わりはありませんでした。
24
+
25
+
26
+
21
27
  ```C#
22
28
 
23
29
  public override void OnActionReceived(float[]vectorAction)
@@ -33,3 +39,179 @@
33
39
 
34
40
 
35
41
  ```
42
+
43
+ ```C#
44
+
45
+ //Agentの動作
46
+
47
+
48
+
49
+ namespace Conect4Agent
50
+
51
+ {
52
+
53
+
54
+
55
+ public class GameAgent : Agent
56
+
57
+ {
58
+
59
+ EnvironmentParameters m_ResetParams;
60
+
61
+ private BehaviorParameters Parameters => _parameters ?? (_parameters = gameObject.GetComponent<BehaviorParameters>());
62
+
63
+ private BehaviorParameters _parameters;
64
+
65
+ public int TeamId => Parameters.TeamId;
66
+
67
+
68
+
69
+ public override void Initialize()
70
+
71
+ {
72
+
73
+ m_ResetParams = Academy.Instance.EnvironmentParameters;
74
+
75
+ }
76
+
77
+
78
+
79
+ public override void OnEpisodeBegin()
80
+
81
+ {
82
+
83
+ }
84
+
85
+
86
+
87
+ public override void CollectObservations(VectorSensor sensor)
88
+
89
+ {
90
+
91
+ }
92
+
93
+
94
+
95
+ public override void WriteDiscreteActionMask(IDiscreteActionMask actionMask)
96
+
97
+ {
98
+
99
+ {
100
+
101
+ //最上段
102
+
103
+ var actionIndices = new List<int> { };
104
+
105
+ for (var i = 0; i < 7; i++)
106
+
107
+ {
108
+
109
+ if (GameAI.squares[i, 6] != 0)
110
+
111
+ { // 自分が置けない場所
112
+
113
+
114
+
115
+ int mask = i + 42;
116
+
117
+ actionIndices.Add(mask);
118
+
119
+ }
120
+
121
+ }
122
+
123
+ actionMask.WriteMask(0, actionIndices);
124
+
125
+ }
126
+
127
+
128
+
129
+ }
130
+
131
+
132
+
133
+ public void MoveAgent(ActionSegment<int> act)
134
+
135
+ {
136
+
137
+ GameAI.AgentX = act[0];
138
+
139
+ }
140
+
141
+
142
+
143
+ public override void OnActionReceived(Unity.MLAgents.Actuators.ActionBuffers actions)
144
+
145
+ {
146
+
147
+ MoveAgent(actions.DiscreteActions);
148
+
149
+
150
+
151
+ if (GameAI.CheckWinLose(GameAI.RED) == GameAI.RED)
152
+
153
+ {
154
+
155
+ if (TeamId == 0)
156
+
157
+ {
158
+
159
+ SetReward(1.0f);
160
+
161
+ }
162
+
163
+ else if (TeamId == 1)
164
+
165
+ {
166
+
167
+ SetReward(-1.0f);
168
+
169
+ }
170
+
171
+ EndEpisode();
172
+
173
+ }
174
+
175
+ else if (GameAI.CheckWinLose(GameAI.GREEN) == GameAI.GREEN)
176
+
177
+ {
178
+
179
+ if (TeamId == 0)
180
+
181
+ {
182
+
183
+ SetReward(-1.0f);
184
+
185
+ }
186
+
187
+ else if (TeamId == 1)
188
+
189
+ {
190
+
191
+ SetReward(1.0f);
192
+
193
+ }
194
+
195
+ EndEpisode();
196
+
197
+ }
198
+
199
+ else if (GameAI.CheckWinLose(GameAI.DROW) == GameAI.DROW)
200
+
201
+ {
202
+
203
+ SetReward(0f);
204
+
205
+ EndEpisode();
206
+
207
+ }
208
+
209
+ }
210
+
211
+
212
+
213
+ }
214
+
215
+ }
216
+
217
+ ```

4

2021/01/25 01:54

投稿

eg_0615
eg_0615

スコア0

test CHANGED
File without changes
test CHANGED
@@ -11,6 +11,10 @@
11
11
 
12
12
 
13
13
  ML-agents release12です。
14
+
15
+
16
+
17
+ 本当に初心者なので簡単なところを見落としている可能性があります。少しでも可能性があったら教えてください。
14
18
 
15
19
 
16
20
 

3

2021/01/24 16:15

投稿

eg_0615
eg_0615

スコア0

test CHANGED
File without changes
test CHANGED
@@ -7,6 +7,10 @@
7
7
  Branch 0 Size →7
8
8
 
9
9
  としております。
10
+
11
+
12
+
13
+ ML-agents release12です。
10
14
 
11
15
 
12
16
 
@@ -20,4 +24,8 @@
20
24
 
21
25
 
22
26
 
27
+ ...以下値を用いた関数等
28
+
29
+
30
+
23
31
  ```

2

2021/01/24 13:40

投稿

eg_0615
eg_0615

スコア0

test CHANGED
File without changes
test CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  ```C#
14
14
 
15
- public override void OnActionReceived(float[ ]vectorAction)
15
+ public override void OnActionReceived(float[]vectorAction)
16
16
 
17
17
 
18
18
 

1

2021/01/24 13:24

投稿

eg_0615
eg_0615

スコア0

test CHANGED
File without changes
test CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  ```C#
14
14
 
15
- public override void OnActionReceived(float[ vectorAction])
15
+ public override void OnActionReceived(float[ ]vectorAction)
16
16
 
17
17
 
18
18