我正在尝试构建一个自定义变量自动编码器网络,我在初始化解码器权重时使用来自编码器层的权重转置,我找不到原生的东西,tf.contrib.layers.fully_connected所以我用了tf.assign代替,这里是我的代码层:
def inference_network(inputs, hidden_units, n_outputs):
"""Layer definition for the encoder layer."""
net = inputs
with tf.variable_scope('inference_network', reuse=tf.AUTO_REUSE):
for layer_idx, hidden_dim in enumerate(hidden_units):
net = layers.fully_connected(
net,
num_outputs=hidden_dim,
weights_regularizer=layers.l2_regularizer(training_params.weight_decay),
scope='inf_layer_{}'.format(layer_idx))
add_layer_summary(net)
z_mean = layers.fully_connected(net, num_outputs=n_outputs, activation_fn=None)
z_log_sigma = layers.fully_connected(
net, num_outputs=n_outputs, activation_fn=None)
return z_mean, z_log_sigma
def generation_network(inputs, decoder_units, n_x):
"""Define the decoder network."""
net = inputs # inputs here is the latent representation.
with tf.variable_scope("generation_network", reuse=tf.AUTO_REUSE):
assert(len(decoder_units) >= 2)
# First layer does not have a regularizer …Run Code Online (Sandbox Code Playgroud) 在下面的简单代码中,当我指定dearness=(40*basic)/100 or rent=(20*basic)/100它时工作正常,但是按照以下方式进行,亲属和租金的赋值语句没有任何效果
请暗示可能的原因.
#include "stdio.h"
#include "conio.h"
int main()
{
int salary=0,basic=0,dearness=0,rent=0;
clrscr();
printf("enter basic salary");
scanf("%d",&basic);
dearness=(40/100)*basic; //no effect
rent=(20/100)*basic; //no effect
salary=basic+dearness+rent;
printf("%d %d",dearness,rent);
printf("\n%d",salary);
getch();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
谢谢.