@@ -35,13 +35,11 @@ public class Adam<Model: Layer, Scalar: TensorFlowFloatingPoint>: Optimizer
35
35
public let decay : Scalar
36
36
37
37
public init (
38
- for _: __shared Model,
39
38
learningRate: Scalar = 1e-3 ,
40
39
beta1: Scalar = 0.9 ,
41
40
beta2: Scalar = 0.999 ,
42
41
epsilon: Scalar = 1e-8 ,
43
- decay: Scalar = 0 ,
44
- scalarType: Scalar . Type
42
+ decay: Scalar = 0
45
43
) {
46
44
precondition ( learningRate >= 0 , " Learning rate must be non-negative " )
47
45
precondition ( 0 <= beta1 && beta1 <= 1 , " Beta parameter must be between 0 and 1 " )
@@ -55,6 +53,23 @@ public class Adam<Model: Layer, Scalar: TensorFlowFloatingPoint>: Optimizer
55
53
self . decay = decay
56
54
}
57
55
56
+ public convenience init (
57
+ for _: __shared Model,
58
+ learningRate: Scalar = 1e-3 ,
59
+ beta1: Scalar = 0.9 ,
60
+ beta2: Scalar = 0.999 ,
61
+ epsilon: Scalar = 1e-8 ,
62
+ decay: Scalar = 0 ,
63
+ scalarType: Scalar . Type
64
+ ) {
65
+ self . init (
66
+ learningRate: learningRate,
67
+ beta1: beta1,
68
+ beta2: beta2,
69
+ epsilon: epsilon,
70
+ decay: decay)
71
+ }
72
+
58
73
private var step : Scalar = 0
59
74
private var firstMoments = Model . AllDifferentiableVariables. zero
60
75
private var secondMoments = Model . AllDifferentiableVariables. zero
@@ -84,12 +99,10 @@ public class RMSProp<Model: Layer, Scalar: TensorFlowFloatingPoint>: Optimizer
84
99
public let decay : Scalar
85
100
86
101
public init (
87
- for _: __shared Model,
88
102
learningRate: Scalar = 0.001 ,
89
103
rho: Scalar = 0.9 ,
90
104
epsilon: Scalar = 1e-8 ,
91
- decay: Scalar = 0 ,
92
- scalarType: Scalar . Type
105
+ decay: Scalar = 0
93
106
) {
94
107
precondition ( learningRate >= 0 , " Learning rate must be non-negative " )
95
108
precondition ( rho >= 0 , " Rho must be non-negative " )
@@ -101,6 +114,17 @@ public class RMSProp<Model: Layer, Scalar: TensorFlowFloatingPoint>: Optimizer
101
114
self . decay = decay
102
115
}
103
116
117
+ public convenience init (
118
+ for _: __shared Model,
119
+ learningRate: Scalar = 0.001 ,
120
+ rho: Scalar = 0.9 ,
121
+ epsilon: Scalar = 1e-8 ,
122
+ decay: Scalar = 0 ,
123
+ scalarType: Scalar . Type
124
+ ) {
125
+ self . init ( learningRate: learningRate, rho: rho, epsilon: epsilon, decay: decay)
126
+ }
127
+
104
128
private var step : Scalar = 0
105
129
private var alpha = Model . AllDifferentiableVariables. zero
106
130
@@ -125,12 +149,10 @@ public class SGD<Model: Layer, Scalar: TensorFlowFloatingPoint>: Optimizer
125
149
public let nesterov : Bool
126
150
127
151
public init (
128
- for _: __shared Model,
129
152
learningRate: Scalar = 0.01 ,
130
153
momentum: Scalar = 0 ,
131
154
decay: Scalar = 0 ,
132
- nesterov: Bool = false ,
133
- scalarType: Scalar . Type
155
+ nesterov: Bool = false
134
156
) {
135
157
precondition ( learningRate >= 0 , " Learning rate must be non-negative " )
136
158
precondition ( momentum >= 0 , " Momentum must be non-negative " )
@@ -142,6 +164,17 @@ public class SGD<Model: Layer, Scalar: TensorFlowFloatingPoint>: Optimizer
142
164
self . nesterov = nesterov
143
165
}
144
166
167
+ public convenience init (
168
+ for _: __shared Model,
169
+ learningRate: Scalar = 0.01 ,
170
+ momentum: Scalar = 0 ,
171
+ decay: Scalar = 0 ,
172
+ nesterov: Bool = false ,
173
+ scalarType: Scalar . Type
174
+ ) {
175
+ self . init ( learningRate: learningRate, momentum: momentum, decay: decay, nesterov: nesterov)
176
+ }
177
+
145
178
private var step : Scalar = 0
146
179
private var velocity = Model . AllDifferentiableVariables. zero
147
180
0 commit comments