Skip to content

Commit d111837

Browse files
committed
Updated dynet to use initialization
Former-commit-id: b0041d7
1 parent 865f4d1 commit d111837

File tree

2 files changed

+7
-4
lines changed

2 files changed

+7
-4
lines changed

dynet/model.cc

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,8 @@ LookupParameterStorage::LookupParameterStorage(unsigned n, const Dim& d) : dim(d
111111
all_grads.device = all_values.device = default_device;
112112
default_device->allocate_tensor(DeviceMempool::PS, all_values);
113113
default_device->allocate_tensor(DeviceMempool::PS, all_grads);
114-
TensorTools::Zero(all_values);
114+
ParameterInitGlorot init(true);
115+
init.initialize_params(all_values);
115116
initialize_lookups();
116117
}
117118

@@ -192,7 +193,9 @@ void ParameterInitConst::initialize_params(Tensor & values) const {
192193
}
193194

194195
void ParameterInitGlorot::initialize_params(Tensor & values) const {
195-
float my_scale = sqrt(6) / sqrt(values.d.sum_dims());
196+
int dims = 0, dim_len = values.d.nd-(lookup?1:0);
197+
for(int i = 0; i < dim_len; ++i) dims += values.d[i];
198+
float my_scale = sqrt(6) / sqrt(dims);
196199
TensorTools::RandomizeUniform(values, -my_scale, my_scale);
197200
}
198201

dynet/model.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -196,10 +196,10 @@ struct ParameterInitConst : public ParameterInit {
196196
};
197197

198198
struct ParameterInitGlorot : public ParameterInit {
199-
ParameterInitGlorot() {}
199+
ParameterInitGlorot(bool is_lookup = false) : lookup(is_lookup) {}
200200
virtual void initialize_params(Tensor & values) const override;
201201
private:
202-
float cnst;
202+
bool lookup;
203203
};
204204

205205
struct ParameterInitSaxe : public ParameterInit {

0 commit comments

Comments
 (0)