Hi, I am newbie in pytorch.

Is there any way to initialize model parameters to all zero at first?

Say, if I have 2 input and 1 output linear regression, I will have 2 weight and 1 bias.

I want to make all weights and bias zero at first.

I couldn’t find other posts that deal with this issue.

All at once…

```
for p in model.parameters():
p.data.fill_(0)
```

Per layer

```
model.layer1.weight.data.fill_(0)
model.layer1.bias.data.fill_(0)
```

It works well, thank you!

But this one doesn’t.

It says my model has no layer1 attribute.

I was assuming your model class declared a layer1 submodule.

Oh I didn’t.

Actually It is very as simple as below.

Aha. You called it `.linear`

rather than `.layer1`

, so this will work…

```
model.linear.weight.data.fill_(0)
model.linear.bias.data.fill_(0)
```

It is great!

Got some intuition about pytorch too.

Thank you!

does the answer for this question need to be updated because I think I read somewhere that .data was going to be removed…is that correct?

For example the following code gives an error:

```
param.normal_(mean=mu,std=s)
RuntimeError: a leaf Variable that requires grad has been used in an in-place operation.
```

I know that doing .data works but if I recall thats going to be removed

Sorry to bug you, but what is the right way to `_fill`

parameters given that the `.data`

field might be going away (or is bad practice) or something like that I heard/read somewhere in the forum. What’s your take for a safe way to answer this question (i.e. for custom initialization of NNs)?