mnist

从零开始构建逻辑回归模型

自闭症网瘾萝莉.ら 提交于 2019-11-30 04:32:10
逻辑回归模型是针对线性可分问题的一种易于实现而且性能优异的分类模型。我们将分别使用Numpy和TensorFlow实现逻辑回归模型训练和预测过程。 从零构建 首先,我们通过Numpy构建一个逻辑回归模型。 我们定义shape如下: \(X\) :(n,m) \(Y\) :(1,m) \(w\) :(n,1) \(b\) :(1) 其中 \(n\) 代表特征维数, \(m\) 代表样本个数。 对于逻辑回归二分类模型,其损失函数如下: \[ J(\theta)=-\frac{1}{m}\sum_{i=1}^N{[y_i\log{h_\theta(x_i)}+(1-y_i)\log{(1-h_\theta(x_i))}]} \] 对 \(\theta\) 求导得 \(\theta\) 的更新方式是: \[ \theta_j:= \theta_j-\alpha \frac{1}{m}\sum_{i=1}^m (h_\theta(x_i)-y_i)x_i^j \] 所以,在代码中, \(\theta\) 的更新方式为: dw = np.dot(X,(A-Y).T)/m 各个函数作用如下: sigmoid(x):激活函数实现 initialization(dim):零值初始化w以及b propagate(w,b,X,Y):前向传播得到梯度以及代价函数值 optimize(w,b,X,Y

os.walk|图片数据集

那年仲夏 提交于 2019-11-30 03:34:42
该函数的功能:遍历指定文件夹下的所有【路径】【文件夹】【文件名】 ''' os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]]) 参数: top -- 是你所要遍历的目录的地址, 返回的是一个三元组(root,dirs,files)。 root 所指的是当前正在遍历的这个文件夹的本身的地址 dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录) files 同样是 list , 内容是该文件夹中所有的文件(不包括子目录) topdown --可选,为 True,则优先遍历 top 目录,否则优先遍历 top 的子目录(默认为开启)。如果 topdown 参数为 True,walk 会遍历top文件夹,与top 文件夹中每一个子目录。 onerror -- 可选,需要一个 callable 对象,当 walk 需要异常时,会调用。 followlinks -- 可选,如果为 True,则会遍历目录下的快捷方式(linux 下是软连接 symbolic link )实际所指的目录(默认关闭),如果为 False,则优先遍历 top 的子目录。 ''' 函数定义 #查看root的所有值【root代表当前遍历文件夹的路径】 for root,dirs,files in os.walk("."

7.Tensorboard可视化,Tensorboard的数据形式, 查看网络运行时候的数据

为君一笑 提交于 2019-11-29 15:03:24
1.Tensorboard可以记录与展示以下数据形式: 标量Scalars 图片Images 音频Audio 计算图Graph 数据分布Distribution 直方图Histograms 嵌入向量Embeddings 2.Tensorboard的可视化过程 首先肯定是先建立一个graph,你想从这个graph中获取某些数据的信息 确定要在graph中的哪些节点放置summary operations以记录信息 使用tf.summary.scalar记录标量 使用tf.summary.histogram记录数据的直方图 使用tf.summary.distribution记录数据的分布图 使用tf.summary.image记录图像数据 …. 3 operations并不会去真的执行计算,除非你告诉他们需要去run,或者它被其他的需要run的operation所依赖。而我们上一步创建的这些summary operations其实并不被其他节点依赖,因此,我们需要特地去运行所有的summary节点。但是呢,一份程序下来可能有超多这样的summary 节点,要手动一个一个去启动自然是及其繁琐的,因此我们可以使用tf.summary.merge_all去将所有summary节点合并成一个节点,只要运行这个节点,就能产生所有我们之前设置的summary data。 4 使用tf

2.Mnist手写集

 ̄綄美尐妖づ 提交于 2019-11-29 14:58:29
MNIST数据集官网 : Yann LeCun’s website Four files are available on this site: train-images-idx3-ubyte.gz: training set images (9912422 bytes) train-labels-idx1-ubyte.gz: training set labels (28881 bytes) t10k-images-idx3-ubyte.gz: test set images (1648877 bytes) t10k-labels-idx1-ubyte.gz: test set labels (4542 bytes) 也可以从这里下载: linkurl 下载下来的数据集被分为两部分:60000行训练数据集(mnist.train) 和 10000行测试数据集(mnist.test) 每一张图片包含28 28个像素,展开成一个向量,长度是28 28=784,因此在mnist.train.images是一个形状[60000,784]的张量(tensor), mnist.train.labels是一个[60000,10]的数字矩阵 softmax 函数: 这个softmax模型可以用来给不同的对象分配概率。 分类的结果,转化为概率 MNIST手写数字识别简单的版本 import

TypeError: only integer scalar arrays can be converted to a scalar index

我的梦境 提交于 2019-11-29 06:08:02
问题 I am trying a simple demo code of tensorflow from github link. I'm currently using python version 3.5.2 Z:\downloads\tensorflow_demo-master\tensorflow_demo-master>py Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:18:55) [MSC v.1900 64 bit (AMD64)] on win32<br> Type "help", "copyright", "credits" or "license" for more information. I ran into this error when I tried board.py in command-line. I have installed all the dependencies that are required for this to run. def _read32(bytestream): dt

How to convert a grayscale image into a list of pixel values?

旧时模样 提交于 2019-11-29 02:40:14
I am trying to create a python program which takes a grayscale, 24*24 pixel image file (I haven't decided on the type, so suggestions are welcome) and converts it to a list of pixel values from 0 (white) to 255 (black). I plan on using this array for creating a MNIST -like bytefile of the picture, that can be recognized by Tensor-Flow handwriting recognition algorithms. I have found the Pillow library to be the most useful in this task, by iterating over each pixel and appending its value to an array from PIL import Image img = Image.open('eggs.png').convert('1') rawData = img.load() data = []

Keras - Save image embedding of the mnist data set

。_饼干妹妹 提交于 2019-11-29 02:00:55
I've written the following simple MLP network for the MNIST db. from __future__ import print_function import keras from keras.datasets import mnist from keras.models import Sequential from keras.layers import Dense, Dropout from keras import callbacks batch_size = 100 num_classes = 10 epochs = 20 tb = callbacks.TensorBoard(log_dir='/Users/shlomi.shwartz/tensorflow/notebooks/logs/minist', histogram_freq=10, batch_size=32, write_graph=True, write_grads=True, write_images=True, embeddings_freq=10, embeddings_layer_names=None, embeddings_metadata=None) early_stop = callbacks.EarlyStopping(monitor=

TensorFlow 模型的保存与载入

a 夏天 提交于 2019-11-29 01:53:55
参考学习博客: # https://www.cnblogs.com/felixwang2/p/9190692.html一、模型保存 1 # https://www.cnblogs.com/felixwang2/p/9190692.html 2 # TensorFlow(十三):模型的保存与载入 3 4 import tensorflow as tf 5 from tensorflow.examples.tutorials.mnist import input_data 6 7 # 载入数据集 8 mnist = input_data.read_data_sets("MNIST_data", one_hot=True) 9 10 # 每个批次100张照片 11 batch_size = 100 12 # 计算一共有多少个批次 13 n_batch = mnist.train.num_examples // batch_size 14 15 # 定义两个placeholder 16 x = tf.placeholder(tf.float32, [None, 784]) 17 y = tf.placeholder(tf.float32, [None, 10]) 18 19 # 创建一个简单的神经网络,输入层784个神经元,输出层10个神经元 20 W = tf.Variable(tf

import input_data MNIST tensorflow not working

徘徊边缘 提交于 2019-11-29 01:05:23
TensorFlow MNIST example not running with fully_connected_feed.py I checked this out and realized that input_data was not built-in. So I downloaded the whole folder from here . How can I start the tutorial: import input_data mnist = input_data.read_data_sets("MNIST_data/", one_hot=True) --------------------------------------------------------------------------- ImportError Traceback (most recent call last) <ipython-input-6-a5af65173c89> in <module>() ----> 1 import input_data 2 mnist = tf.input_data.read_data_sets("MNIST_data/", one_hot=True) ImportError: No module named input_data I'm using

TensorFlow学习笔记3-从MNIST开始

自古美人都是妖i 提交于 2019-11-29 00:24:15
TensorFlow学习笔记3-从MNIST开始学习softmax 本笔记内容为“从MNIST学习softmax regression算法的实现”。 注意:由于我学习机器学习及之前的书写习惯,约定如下: \(X\) 表示训练集的设计矩阵,其大小为m行n列,m表示训练集的大小(size),n表示特征的个数; \(W\) 表示权重矩阵,其大小是n行k列,n为输入特征的个数,k为输出(特征)的个数; \(\boldsymbol{y}\) 表示训练集对应标签,其大小为m行,m表示训练集的大小(size); \(\boldsymbol{y’}\) 表示将测试向量 \(x\) 输入后得到的测试结果; 总之: 注意区分这里的: \(\boldsymbol{y'}=XW+\boldsymbol{b}\) 表示矩阵形式的预测结果( \(\boldsymbol{y’}\) 和 \(\boldsymbol{b}\) 是向量); 之前机器学习中的是(如《机器学习实战》中SVM一章):$y’=\omega^T x+b $ 表示向量形式的预测结果( \(y'\) 和 \(b\) 是标量); 算法部分:包括预测模型和优化目标 以手写输入MNIST为例: 预测模型 \[ \boldsymbol{y'}=softmax(\boldsymbol{z})=softmax(X \times W + \boldsymbol