argmax

MNIST手写数字分类simple版(03-2)

北战南征 提交于 2020-02-15 01:52:54
simple版本nn模型 训练手写数字处理 import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data #载入数据集 mnist=input_data.read_data_sets("MNIST_data", one_hot=True) #每个批次的大小 batch_size=100 #计算一共有多少批次 n_batch=mnist.train.num_examples // batch_size #定义两个placeholder x=tf.placeholder(tf.float32,[None,784]) y=tf.placeholder(tf.float32,[None,10]) #创建一个简单的神经网络 W=tf.Variable(tf.zeros([784,10])) b=tf.Variable(tf.zeros([1,10])) prediction=tf.nn.softmax(tf.matmul(x,W)+b) #二次代价函数 loss=tf.reduce_mean(tf.square(y-prediction)) #使用剃度下降法 train_step=tf.train.GradientDescentOptimizer(0.2).minimize(loss)

动手学深度学习PyTorch版-task01

☆樱花仙子☆ 提交于 2020-02-14 21:32:31
task0101.线性回归 优化函数 - 随机梯度下降 当模型和损失函数形式较为简单时,上面的误差最小化问题的解可以直接用公式表达出来。这类解叫作解析解(analytical solution)。本节使用的线性回归和平方误差刚好属于这个范畴。然而,大多数深度学习模型并没有解析解,只能通过优化算法有限次迭代模型参数来尽可能降低损失函数的值。这类解叫作数值解(numerical solution)。 在求数值解的优化算法中,小批量随机梯度下降(mini-batch stochastic gradient descent)在深度学习中被广泛使用。它的算法很简单:先选取一组模型参数的初始值,如随机选取;接下来对参数进行多次迭代,使每次迭代都可能降低损失函数的值。在每次迭代中,先随机均匀采样一个由固定数目训练数据样本所组成的小批量(mini-batch)β,然后求小批量中数据样本的平均损失有关模型参数的导数(梯度),最后用此结果与预先设定的一个正数的乘积作为模型参数在本次迭代的减小量。 读取数据时的一段代码理解 def data_iter(batch_size, features, labels): num_examples = len(features) indices = list(range(num_examples)) random.shuffle(indices) # random

MATLAB中实现argmax函数

妖精的绣舞 提交于 2020-02-12 12:11:16
argmax 函数在一般图像分割任务中十分常见,在Numpy中直接调用 np.argmax 函数即可,在MATLAB中其实也有,只不过比较隐蔽,其函数原型为: [M,I] = MAX(X,[],DIM) 用户可以指定 维度 ( DIM ),输出 I 即为相应的索引。 来源: CSDN 作者: 脉望虫 链接: https://blog.csdn.net/qq_36763031/article/details/104228834

(Python)numpy的argmax用法

随声附和 提交于 2020-01-28 23:27:56
解释 还是从一维数组出发.看下面的例子. import numpy as np a = np.array([3, 1, 2, 4, 6, 1]) print(np.argmax(a))4 argmax返回的是最大数的索引.argmax有一个参数axis,默认是0,表示第几维的最大值.看二维的情况. import numpy as np a = np.array([[1, 5, 5, 2], [9, 6, 2, 8], [3, 7, 9, 1]]) print(np.argmax(a, axis=0))[1,2,2,1] 为了描述方便,a就表示这个二维数组.np.argmax(a, axis=0)的含义是 a[0][j], a[1][j], a[2][j] (j=0,1,2,3)中最大值的索引.(每1列的最大索引) 从a[0][j]开始,最大值索引最初为(0,0,0,0),拿a[0][j]和a[1][j]作比较,9大于1,6大于5,8大于2,所以最大值索引由(0,0,0,0)更新为(1,1,0,1),再和a[1][j]作比较,7大于6,9大于5所以更新为(1,2,2,1).再分析下面的输出. import numpy as np a = np.array([[1, 5, 5, 2], [9, 6, 2, 8], [3, 7, 9, 1]]) print(np.argmax(a,

详解numpy的argmax

感情迁移 提交于 2020-01-28 05:49:39
从最简单的例子出发 假定现在有一个数组a = [3, 1, 2, 4, 6, 1]现在要算数组a中最大数的索引是多少.这个问题对于刚学编程的同学就能解决.最直接的思路,先假定第0个数最大,然后拿这个和后面的数比,找到大的就更新索引.代码如下 a = [3, 1, 2, 4, 6, 1] maxindex = 0 i = 0 for tmp in a: if tmp > a[maxindex]: maxindex = i i += 1 print(maxindex) 这个问题虽然简单.但是可以帮助我们理解argmax. 解释 还是从一维数组出发.看下面的例子. import numpy as np a = np.array([3, 1, 2, 4, 6, 1]) print(np.argmax(a)) argmax返回的是最大数的索引.argmax有一个参数axis,默认是0,表示第几维的最大值.看二维的情况. import numpy as np a = np.array([[1, 5, 5, 2], [9, 6, 2, 8], [3, 7, 9, 1]]) print(np.argmax(a, axis=0)) 为了描述方便,a就表示这个二维数组.np.argmax(a, axis=0)的含义是a[0][j],a[1][j],a[2][j](j=0,1,2,3)中最大值的索引

tensorflow数据统计

拜拜、爱过 提交于 2020-01-22 22:19:48
本篇内容包括,tf.norm(张量的范数)、tf.reduce_min/max(最大最小值)、tf.argmax/argmin(最大最小值的位置)、tf.equal(张量的比较)、tf.unique(张量的独特值) 1.tf.norm   · 二范数 ||x|| 2 = (Σx k 2 ) 1/2   · 一范数 ||x|| 1 = Σ|x k |   · 无穷范数 ||x|| ∞ = max|x k | # 二范数 a = tf.ones([2,2]) print(tf.norm(a)) print(tf.norm(a,ord=2,axis=0)) print(tf.sqrt(tf.reduce_sum(tf.square(a)))) # 一范数 print(tf.norm(a,ord=1)) print(tf.norm(a,ord=1,axis=0)) print(tf.norm(a,ord=1,axis=1)) 2.reduce_min/max/mean a = tf.random.normal([4,10]) # 全值,即把tensor打平为[40] print(tf.reduce_min(a),tf.reduce_max(a),tf.reduce_mean(a)) # 指定参数轴 print(tf.reduce_min(a,axis=1),tf.reduce_max(a

tf.argmax函数说明

别等时光非礼了梦想. 提交于 2020-01-14 17:53:37
tf.argmax函数说明 tf . argmax ( input , axis = None , name = None , dimension = None , output_type = tf . int64 ) 参数: input : 输入矩阵 axis : 默认为 None name : 默认为 None dimension : 默认为 None output_type : 默认类型为int64 用途:返回最大的那个数值所在的下标(第一个参数是矩阵,第二个参数是0或者1。0表示的是按列比较返回最大值的索引,1表示按行比较返回最大值的索引)。 代码示例: import tensorflow as tf Vector = [ 1 , 1 , 2 , 5 , 3 ] #定义一个向量 X = [ [ 1 , 3 , 2 ] , [ 2 , 5 , 8 ] , [ 7 , 5 , 9 ] ] #定义一个矩阵 with tf . Session ( ) as sess : a = tf . argmax ( Vector , 0 ) b = tf . argmax ( X , 0 ) c = tf . argmax ( X , 1 ) print ( sess . run ( a ) ) print ( sess . run ( b ) ) print ( sess . run (

arg max in Java 8 streams?

别说谁变了你拦得住时间么 提交于 2020-01-10 01:45:11
问题 I often need the maximum element of a collection according to the maximization of a criterion which produces a double or int value. Streams have the max() function which requires me to implement a comparator, which I find cumbersome. Is there a more concise syntax, such as names.stream().argmax(String::length) in the following example? import java.util.Arrays; import java.util.Comparator; import java.util.List; public class ArgMax { public static void main(String[] args) { List<String> names

BigQuery argmax: Is array order maintained when doing CROSS JOIN UNNEST

匆匆过客 提交于 2020-01-05 08:36:18
问题 Question: In BigQuery, standard SQL, if I run SELECT * FROM mytable CROSS JOIN UNNEST(mytable.array) Can I be certain that the resulting row order is the same as the array order? Example: Let's say I have the following table mytable : Row | id | prediction 1 | abcd | [0.2, 0.5, 0.3] If I run SELECT * FROM mytable CROSS JOIN UNNEST(mytable.prediction) , can I be certain that the row order is the same as the array order? I.e. will the resulting table always be: Row | id | unnested_prediction 1