Je commence à peine à apprendre TensorFlow et j'ai quelques problèmes avec lui. J'ai lu le document - COMPRESSION PROFONDE: COMPRESSER LES RÉSEAUX NEURONAUX PROFONDES AVEC L'ÉLAGAGE, LA QUANTIFICATION FORMÉE ET LE CODAGE DE HUFFMAN il y a quelques jours. Dans la partie d'élagage, les auteurs commencent par apprendre la connectivité via une formation réseau normale. Ensuite, ils élaguent les connexions de faible poids: toutes les connexions avec des poids inférieurs à un seuil sont supprimées du réseau. Enfin, ils réapprennent le réseau à apprendre les poids finaux pour les connexions clairsemées restantes.comment modifier la valeur d'un tenseur lors de la conception du réseau dans TensorFlow
Je veux obtenir tous les poids de chaque couche et comparer au seuil, un par un et définissez les petits poids zero.Here est mon code et il y a une TypeError d'exception («Utilisation d'un tf.Tensor
comme Python bool
n'est pas permis."). Comment puis-je obtenir la valeur du tenseur de poids lorsque je conçois le réseau? Est-ce que quelqu'un a déjà implémenté ce code ou toute autre méthode suggérée? Merci d'avance!
with tf.variable_scope('layer1-conv1'):
conv1_weights = tf.get_variable(
"weight", [CONV1_SIZE, CONV1_SIZE, NUM_CHANNELS, CONV1_DEEP],
initializer = tf.truncated_normal_initializer(stddev=0.1)
)
shapeDim=CONV1_SIZE*CONV1_SIZE*NUM_CHANNELS*CONV1_DEEP
reshape_w=tf.reshape(conv1_weights,[-1])
i=0
if step != 0 and step != 1:
while i < shapeDim:
if reshape_w[i] < RATIO:
reshape_w[i] = 0
conv1_weights=tf.reshape(reshape_w, [CONV1_SIZE, CONV1_SIZE, NUM_CHANNELS, CONV1_DEEP])
conv1_biases = tf.get_variable("bias", [CONV1_DEEP], initializer=tf.constant_initializer(0.0))
conv1 = tf.nn.conv2d(input_tensor, conv1_weights, strides=[1, 1, 1, 1], padding='SAME')
relu1 = tf.nn.relu(tf.nn.bias_add(conv1, conv1_biases))
Je suis très reconnaissant pour votre Véry reply.It utile. Mais la dernière déclaration ne semble pas être en cours d'exécution. Je ne sais pas comment résoudre it.Here est mon code: 'compare_matrix = tf.constant (rapport, forme = [CONV1_SIZE, CONV1_SIZE, NUM_CHANNELS, CONV1_DEEP]) compare_bool = tf.less (conv1_weights, compare_matrix) conv1_weights.assign (tf.where (compare_bool, tf.zeros_like (conv1_weights), conv1_weights)) ' –
L'instruction 'session.run' est définie dans un autre fichier, y a-t-il un problème? –
J'ai résolu ce problème. Merci beaucoup! –