предположим, что строка: @ "200" адрес указателя: 0xeeff @ "100" адрес указателя: 0xeeaa
, поэтому ваш код может измениться следующим образом:
NSString *johnsMoney = @"200";
(johnsMoney = 0xeeff)
NSString *marysMoney = johnsMoney;
(marysMoney = 0xeeff)
johnsMoney = @"100";
(johnsMoney = 0xeeaa)
(marysMoney = 0xeeff)
marysMoney адрес указателя не изменен, но адрес указателя johnsMoney изменился.
Как то же: предположим, что объект: адрес указателя dog1: 0xeeff
, поэтому ваш код может измениться следующим образом:
Dog *dog1 = [[Dog alloc] init];
(dog1 pointer address: 0xeeff)
dog1.name = @"Dog 1";
Dog *dog2 = dog1;
(dog2 pointer address: 0xeeff)
dog1.name = @"Dog 3";
(dog1 pointer address still: 0xeeff)
(dog2 pointer address still: 0xeeff)
Поскольку все они указывают на один и тот же адрес, оба они изменились.
Чтобы использовать tf.print
в графическом режиме, вот как работает tf.estimator
, вы можете просто использовать tf.print
в качестве замены для tf.Print
, вам просто нужно принудительно выполнить tf.print
] операции перед выполнением тензора в вашем model_fn, следовательно, учитывая входной тензор, input_
вашего model_fn, вы можете просто:
print_op = tf.print(tensor_to_log)
with tf.control_dependencies([print_op]):
first_layer_output = first_inpyt_layer(input_)
или даже
print_op = tf.print(tensor_to_log)
with tf.control_dependencies([print_op]):
input_ = tf.identity(input_)
# define your model using input_ as usual