tf.random_uniform([vocabulary_size, embedding_size], -1.0, 1.0)) embed = tf.nn.embedding_lookup(embeddings, train_inputs) # Construct the variables for the NCE loss nce_weights = tf.Variable( tf.truncated_normal([vocabulary_size, embedding_size], stddev=1.0 / math.sqrt(embedding_size))) nce_biases = tf.Variable(tf.zeros([vocabulary_size])) # Compute the average NCE loss for the batch. # tf.nce_loss automatically draws a new sample of the negative labels each # time we evaluate the loss. loss = tf.reduce_mean( tf.nn.nce_loss(weights=nce_weights, biases=nce_biases, labels=train_labels, inputs=embed, num_sampled=num_sampled, num_classes=vocabulary_size)) # Construct the SGD optimizer using a learning rate of 1.0. optimizer = tf.train.GradientDescentOptimizer(1.0).minimize(loss) # Compute the cosine similarity between minibatch examples and all embeddings. norm = tf.sqrt(tf.reduce_sum(tf.square(embeddings), 1, keep_dims=True)) normalized_embeddings = embeddings / norm valid_embeddings = tf.nn.embedding_lookup(normalized_embeddings, valid_dataset) similarity = tf.matmul(valid_embeddings, normalized_embeddings, transpose_b=True)
from src import tensorflow as tf w1 = tf.Variable(tf.random_normal([2,3],stddev=1)) w2 = tf.Variable(tf.random_normal([3,1],stddev=1)) x = tf.placeholder(tf.float32,shape=[3,2],name="input") a = tf.matmul(x,w1) y = tf.matmul(a,w2) with tf.Session() as sess: sess.run(tf.initialize_all_variables()) print(sess.run(y,feed_dict={x:[[0.7,0.9],[0.1,0.4],[0.5,0.8]]})) cross_entropy = - tf.reduce_mean( y * tf.log(tf.clip_by_value(y,1e-10,1.0))) learning_rate = 0.001 train_step = tf.train.AdamOptimizer(learning_rate).minimize(cross_entropy) print(sess.run(tf.trainable_variables()))
# y = tf.nn.softmax(tf.matmul(x,w) + b) # loss y_ = tf.placeholder("float", [None, 10]) cross_entropy = -tf.reduce_sum(y_*tf.log(y)) #用 tf.log 计算 y 的每个元素的对数。接下来,我们把 y_ 的每一个元素和 tf.log(y_) 的对应元素相乘。最后,用 tf.reduce_sum 计算张量的所有元素的总和。 # 梯度下降 train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy) # 初始化 init = tf.initialize_all_variables() # Session sess = tf.Session() sess.run(init) # 迭代 for i in range(1000): batch_xs, batch_ys = mnist.train.next_batch(100) sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys}) if i % 50 == 0: correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(y_, 1)) accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float")) print("Setp: ", i, "Accuracy: ",sess.run(accuracy, feed_dict={x: mnist.test.images, y_: mnist.test.labels})) # 评估模型 #correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(y_, 1)) #accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float")) #print sess.run(accuracy, feed_dict={x: mnist.test.images, y_: mnist.test.labels})
# tf Graph Input x = tf.placeholder(tf.float32, [None, 784]) # mnist data image of shape 28*28=784 y = tf.placeholder(tf.float32, [None, 10]) # 0-9 digits recognition => 10 classes # Set model weights W = tf.Variable(tf.zeros([784, 10])) b = tf.Variable(tf.zeros([10])) # Construct model pred = tf.nn.softmax(tf.matmul(x, W) + b) # Softmax # Minimize error using cross entropy cost = tf.reduce_mean(-tf.reduce_sum(y * tf.log(pred), reduction_indices=1)) # Gradient Descent optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost) # Initializing the variables init = tf.initialize_all_variables() # Launch the graph with tf.Session() as sess: sess.run(init) # Training cycle for epoch in range(training_epochs): avg_cost = 0. total_batch = int(mnist.train.num_examples / batch_size) # Loop over all batches
project_embedding = tf.div( tf.reduce_sum(tf.multiply(input_embedding, emb_mask), 1), word_num) # Construct model pred = multilayer_perceptron(project_embedding, weights, biases) # Construct the variables for the NCE loss nce_weights = tf.Variable( tf.truncated_normal([n_classes, n_hidden_1], stddev=1.0 / math.sqrt(n_hidden_1))) nce_biases = tf.Variable(tf.zeros([n_classes])) loss = tf.reduce_mean( tf.nn.nce_loss(weights=nce_weights, biases=nce_biases, labels=y_batch, inputs=pred, num_sampled=10, num_classes=n_classes)) cost = tf.reduce_sum(loss) / batch_size optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(cost) out_layer = tf.matmul(pred, tf.transpose(nce_weights)) + nce_biases init = tf.global_variables_initializer() #with tf.Session(config=tf.ConfigProto(log_device_placement=True)) as sess: with tf.Session() as sess: sess.run(init) # Training cycle start_time = time.time()