![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
tensorflow_2.0
文章平均质量分 63
兰钧
这个作者很懒,什么都没留下…
展开
-
Input 0 of layer conv2d is incompatible with the layer: expected ndim=4, found ndim=2. Full shape r
转载:https://msd.misuland.com/pd/4146263742822220136fashion数据集一共7万张28*28像素点的灰度值图片,其中6万张用于训练,1万张用于测试。一共10个分类,分别是T恤、裤子、靴子······ cifar10数据集一共6万张32*32像素点的红绿蓝三通道彩色图片,其中5万张用于训练,1万张用于测试。一共是10分类,分别是airplane、automobile、bird······看下来两个数据集的主要区别在于一个是单通道的灰度值图片,一个是三通.转载 2020-05-14 15:11:02 · 21206 阅读 · 3 评论 -
tensorflow2.0报错:Function call stack:distributed_function
在原程序的import后添加如下代码并restart即可:physical_devices = tf.config.experimental.list_physical_devices('GPU')assert len(physical_devices) > 0, "Not enough GPU hardware devices available"tf.config.experi...原创 2020-09-09 09:31:51 · 1426 阅读 · 0 评论 -
tensorflow2.0报错:ProfilerNotRunningError: Cannot stop profiling. No profiler is running.
解决方案:将callback中的文件夹定义从:logdir = './callbacks'修改为:logdir = logdir = os.path.join("callbacks")原创 2020-09-09 09:32:01 · 281 阅读 · 0 评论 -
卷积神经网络调参实战
1、可视化——Tensorboard实战参考:https://blog.csdn.net/qq_41660119/article/details/105745045如若输出每一层的参数,参考TF1.0代码2、fine-tune-实战参考:https://blog.csdn.net/qq_41660119/article/details/105943371基本思想:不使用随机初始...原创 2020-09-09 09:31:01 · 476 阅读 · 1 评论 -
卷积神经网络调参
1、adagrad_adam(1)受初始学习率的影响很大比如初始化的学习率比较大,这样不管是用随机梯度下降还是动量梯度下降,都会导致最后整个模型的梯度爆炸,使得它不收敛。(2)每一个维度的学习率一样α值是针对全局来设的,并不是针对每一个参数做个性化定制的,如果是针对一个稀疏的问题来说,这个问题就比较明显。会使得无法学习到稀疏数据上的有用信息。稀疏数据:回顾神经元结构,神...原创 2020-09-09 09:32:16 · 1461 阅读 · 0 评论 -
卷积神经网络进阶(理论:Alexnet,Vggnet,Resnet,InceptionNet,MobileNet)
note:着重介绍网络结构特点1、AlexNetAlexNet上下分割,且它的第三层出现交叉原因:当时的GPU没有那么强大,所以一个GPU上可能装载不了那么大的一个神经网络,所以两个GPU可以使得这个神经网络更大,且两个GPU可以使得神经网络的训练更快。因为有并行化在里面。虚线为Sigmoid,实线为RELU,RELU相较Sigmoid:速度更快...原创 2020-09-09 09:31:07 · 481 阅读 · 0 评论 -
Tensorflow实战VGG
我们课上实现的这个不是VGG Net,是一个普通结构的卷积网络。而且VGG也不是指一个模型,而是根据不同参数控制的一组模型,ResNet同理。1、TF1.0import tensorflow as tfimport osimport pickleimport numpy as npCIFAR_DIR = "./cifar-10-batches-py"print(os.list...原创 2020-09-09 09:32:35 · 291 阅读 · 0 评论 -
keras generator实战——cifar10数据集
1、cifar10数据集Kaggle平台上的cifar10数据集的结构为:其中test文件夹中包含有30 0000张图片,train文件夹中包含5 0000张图片trainLabels.csv文件内容格式如下:sampleSubmission.csv文件内容格式如下:2、实战——keras generator读取cifar10数据集class_names = ...原创 2020-09-09 09:32:49 · 676 阅读 · 0 评论 -
Keras generator实战10monkeys数据集(fine-tune)
1、Kaggle平台上的10monkeys数据集结构如下:2、实战——读取数据train_dir = "./10-monkey-species/training/training"valid_dir = "./10-monkey-species/validation/validation"label_file = "./10-monkey-species/monkey_...原创 2020-09-09 09:31:21 · 1000 阅读 · 0 评论 -
深度可分离卷积网络的理论与实战(TF2.0)
深度可分离卷积是普通卷积操作的一个变种,它可以替代不同卷积,从而构成卷积神经网络。以精度损失为代价去换取计算量的减少和参数量的减少,从而使得深度可分离卷积网络可以在手机端运行。用右图的结构代替左图: 它的好处是,有不同尺寸的视野域,如下图是Inception V3的结构:从左到右的视野域为:1*1,3*3,6*6,5*5,所以说在这四个分支上有4种不同的视野域,4种不同的视野域也就...原创 2020-09-09 09:33:16 · 604 阅读 · 0 评论 -
最基本的卷积神经网络实战并尝试转化
1、TF2.0实战模型结构Model: "sequential"_________________________________________________________________Layer (type) Output Shape Param # =============================...原创 2020-09-09 09:33:22 · 194 阅读 · 0 评论 -
TF1.0与TF2.0的区别?,怎样将TF1.0代码转为TF2.0代码?
1、TF1.0与TF2.0的区别2、API变动3、如何升级示例:TF1.0代码:TF2.0代码:原创 2020-09-09 09:31:45 · 1767 阅读 · 0 评论 -
Tensorflow2.0 Estimator使用(全)
1、泰坦尼克问题引入分析数据集下载地址:https://storage.googleapis.com/tf-datasets/titanic/train.csvhttps://storage.googleapis.com/tf-datasets/titanic/eval.csv数据集解析并展示前5条数据:train_file = "./data/titanic/train....原创 2020-09-09 09:33:50 · 1108 阅读 · 0 评论 -
Tensorflow Keras模型和Estimator有什么区别?
对于整个tensorflow2.0框架,tensorflow Keras模型和Tensorflow Estimators都能够训练神经网络模型并使用它们来预测新的数据。 它们都是TensorFlow 的高级API。 那么什么时候应该用一个来代替另一个呢?,它们两者的区别是什么?又有什么联系?工程实战中怎么区分二者的使用?Background:Estimators API是在版本1.1中添加...原创 2020-09-09 09:33:57 · 3203 阅读 · 0 评论 -
实战tfrecord文件的生成与读取
1、tfrecord基础API使用tfrecord文件格式 -> tf.train.Example -> tf.train.Features -> dict{"key": tf.train.Feature} ...原创 2020-09-09 09:34:03 · 1001 阅读 · 0 评论 -
tf.data.Dataset.map与tf.data.Dataset.interleave
1、mapmap( map_func, num_parallel_calls=None)在此数据集的元素之间映射map_func。此转换将map_func应用于此数据集的每个元素,并返回一个新的数据集,该数据集包含转换后的元素,顺序与它们在输入中出现的顺序相同。示例:a = Dataset.range(1, 6) # ==> [ 1, 2, 3, 4, 5 ...原创 2020-09-09 09:34:17 · 1371 阅读 · 0 评论 -
tf.io.decode_csv
将CSV记录转换为tensor。 每列映射到一tensor。语法:tf.io.decode_csv( records, record_defaults, field_delim=',', use_quote_delim=True, na_value='', select_cols=None, name=None)常用参数:records: string类型的te...原创 2020-09-09 09:34:23 · 1109 阅读 · 0 评论 -
实战csv文件的生成与读取
将加利福尼亚房价预测数据集(回归问题)生成csv文件,并读取生成的csv文件。1、csv文件的生成csv文件:“,”分割,按行存储的文件。output_dir = "generate_csv" #定义文件夹存储生成的数据文件if not os.path.exists(output_dir): os.mkdir(output_dir)#将一个单独的dataset,trai...原创 2020-09-09 09:34:10 · 1443 阅读 · 0 评论 -
模型构建时的input_shape
当我们想要构建一个模型时,通常会使用tf.keras.Sequential的方法进行层次堆叠,在添加第一层网络结构时,我们要指定模型的input_shape,在这里有一个简便方法:如果数据格式是[num_examples, data_dim1, data_dim2, data_dim3,...],这样的形式的话,它的input_shape都可以统一写成:x_train.shape[1:],这种方法...原创 2020-09-09 09:34:56 · 3937 阅读 · 2 评论 -
tf.data基础API使用(tf.data.Dataset.from_tensor_slices(),repeat,batch,interleave)
在这里主要绍tf.data基础API的使用。1、tf.data.Dataset.from_tensor_slices:@staticmethodfrom_tensor_slices( tensors)创建一个数据集,其元素是给定张量的切片请注意,如果张量包含NumPy数组,并且没有启用eager execution,则这些值将作为一个或多个tf.constant...原创 2020-09-09 09:35:02 · 948 阅读 · 0 评论 -
实战tensorflow2.0自定义求导
接下来由浅入深的讲解tf2.0的自定义求导,如果你是将本文作为工具来查阅,请自行选读;如果你只想看tf2.0的自定义求导,请选读第五部分。1、梯度计算的基础1.1 利用定义求解导数def f(x): return 3. * x ** 2 + 2. * x - 1def approximate_derivative(f, x, eps=1e-3): #x指在哪个点的导数 ...原创 2020-09-09 09:31:28 · 315 阅读 · 0 评论 -
tf.squeeze的用法
squeeze( input, axis=None, name=None, squeeze_dims=None)该函数返回一个张量,这个张量是将原始input中所有维度为1的那些维都删掉的结果axis可以用来指定要删掉的为1的维度,此处要注意指定的维度必须确保其是1,否则会报错>>>y = tf.squeeze(inputs, [0,...转载 2020-09-09 09:35:19 · 1080 阅读 · 0 评论 -
报错:InternalError: Blas GEMM launch failed : a.shape=(32, 8), b.shape=(8, 30), m=32, n=30, k=8
报错:InternalError: Blas GEMM launch failed : a.shape=(32, 8), b.shape=(8, 30), m=32, n=30, k=8 [Op:MatMul]解决办法:在import后添加如下代码并restart:physical_devices = tf.config.experimental.list_physical_devic...原创 2020-09-09 09:35:14 · 4778 阅读 · 6 评论 -
模型训练过程小结(适合小白)
为了让自己更清楚模型的训练过程,在这里对训练过程进行一下记录,欢迎大佬补充与指正。1、fit函数训练过程:model.compile(loss="sparse_categorical_crossentropy", optimizer = keras.optimizers.SGD(0.001), metrics = ["accurac...原创 2020-09-09 09:35:25 · 2297 阅读 · 0 评论 -
tensorflow2.0常用回调函数小结
经查看官方文档将常用回调函数做以下小结,目的是了解每个回调函数的作用与参数用法。上图是tf2.0的全部回调函数,在这里介绍常用的4个回调函数:EarlyStopping,tensorboard,1、tf.keras.callbacks.EarlyStopping目的/作用:当监控的值停止变化时,提前结束训练。定义:tf.keras.callbacks.EarlyStopp...原创 2020-09-09 09:36:20 · 723 阅读 · 0 评论 -
tensorflow2.0常用损失函数小结
这些天损失函数有点困扰我,现结合tensorflow2.0官方文档,做以下小结,如果有其它想要补充的,后面再随时更新。1、tf.keras.losses.sparse_categorical_crossentropy / tf.keras.losses.SparseCategoricalCrossentropyhttps://tensorflow.google.cn/...原创 2020-09-09 09:36:51 · 1149 阅读 · 0 评论 -
tensorflow2.0的函数签名与图结构
input_signature的好处:1.可以限定函数的输入类型,以防止调用函数时调错,2.一个函数有了input_signature之后,在tensorflow里边才可以保存成savedmodel。在保存成savedmodel的过程中,需要使用get_concrete_function函数把一个tf.function标注的普通的python函数变成带有图定义的函数。下面的代码具体体现...原创 2020-09-09 09:37:08 · 1039 阅读 · 0 评论 -
将普通python函数转成tensorflow里的图(@tf.function)
tf.function:可以将普通的python函数转成tensorflow里的图auto-graph:是tf.function所依赖的机制将普通的python函数转成tensorflow里图结构的优势:更快,tensorflow图结构里有很多的优化,所以一个普通的python函数转成tensorflow里的图实现的函数后,速度会提升。除了使用tf.function来显式的把一个py...原创 2020-09-09 09:37:14 · 541 阅读 · 0 评论 -
实战tensorflow2.0自定义层次(以DenseLayer为例)
在本文中介绍两种自定义层次的方法:子类法与lambda方法,其中子类法适合用于定义参数较多的层次,而lambda方法更适合实现自定义一个没有参数的层次,例如:激活函数。相比于子类法,lambda方法实现起来更简单,代码量更少,下面进行具体介绍。1、子类法定义DenseLayer(全连接层)实现自定义DenseLayer与之前实现的wide_deep模型很相似,都是通过继承类的方式实现。只不...原创 2020-09-09 09:37:20 · 1057 阅读 · 0 评论 -
实战tensorflow2.0自定义损失函数MSE
数据集:加利福尼亚房价预测数据集核心部分代码:def customized_mse(y_true, y_pred): return tf.reduce_mean(tf.square(y_pred - y_true))model = keras.models.Sequential([ keras.layers.Dense(30, activation='relu', ...原创 2020-09-09 09:37:27 · 989 阅读 · 0 评论 -
tensorflow2.0基础API实战
一、引入tf基础APItf.function是tensorflow2.0中一个重要的feature,它可以把普通的python代码转成tensorflow的图结构。tf.function可以让eager exection默认打开,如果没有tf.function,用eager exection编写的代码无法保存模型的中间训练结果。note:本文着眼于实战tf的基础api,...原创 2020-09-09 09:37:33 · 528 阅读 · 0 评论 -
实战sklearn超参数搜索(随机化)
待补充原创 2020-09-09 09:37:45 · 2564 阅读 · 2 评论 -
手动实现超参数搜索实战
数据集选用加利福尼亚房价预测数据集,是一个房价预测的回归问题只搜索learning_rate。learning_rate用于参数更新:w = w + grad * learning_rate关键代码展示:# learning_rate: [1e-4, 3e-4, 1e-3, 3e-3, 1e-2, 3e-2]# W = W + grad * learning_ratelearn...原创 2020-09-09 09:37:40 · 177 阅读 · 0 评论 -
超参数搜索介绍
为什么要超参数搜索? 神经网络有很多训练过程中不变的参数 例如:网络结构参数:几层,每层宽度,每层激活函数 训练参数:batch_size,学习率,学习率衰减算法 手工去试耗费人力,所以需要超参数搜索batch_size:指一次训练时,要从训练数据中选多少数据”塞”到神经网络中进行训练。学习率:在做梯度下降时...原创 2020-09-09 09:37:50 · 620 阅读 · 0 评论 -
wide_deep模型的多输入与输出实战
使用函数式API实现wide_deep模型的多输入:关键代码展示:# 多输入,使用函数式方法input_wide = keras.layers.Input(shape=[5]) #取前5个feature做为wide模型的输入input_deep = keras.layers.Input(shape=[6]) ##取后6个feature做为wide模型的输入hidden1 = ker...原创 2020-09-09 09:37:57 · 424 阅读 · 0 评论 -
子类API实现wide_deep模型
note:这里实现的wide_deep模型的输入是相同的,如果想参考不同输入的coding方法,可以参考:placeholder在这里选用的数据集是加利福尼亚的房价数据集,因为这个回归问题里有8个特征,可以将这8个特征进行划分,作为wide和deep模型的输入,因此这个问题更适合用wide_deep模型来实现,数据集的详细信息描述如下:from sklearn.datasets imp...原创 2020-09-09 09:38:19 · 192 阅读 · 0 评论 -
函数式/功能API实现wide_deep模型
在这里选用的数据集是加利福尼亚的房价数据集,因为这个回归问题里有8个特征,可以将这8个特征进行划分,作为wide和deep模型的输入,因此这个问题更适合用wide_deep模型来实现,数据集的详细信息描述如下:from sklearn.datasets import fetch_california_housinghousing = fetch_california_housing(...原创 2020-09-09 09:38:14 · 204 阅读 · 0 评论 -
wide_deep模型介绍
wide_deep模型可以用于分类问题,也可以用于回归问题。在wide_deep模型中把一个数据的信息用稀疏特征和密集特征来表示,基于这两种特征构建模型。Wide模型的模型结构:如下,左图为一个wide模型,这个模型只有一层,所有的输入直接连到输出上,输入就是前面介绍的稀疏特征,(也就是一个one-hot表达,one-hot表达中的每一个分量都直接连接到输出单元...原创 2020-09-09 09:38:02 · 644 阅读 · 0 评论 -
实战深度神经网络(包含批归一化、激活函数、dropout的实战)
深度神经网络实战数据集选用的是分类数据集因为:深度神经网络就是层次非常深的神经网络所以在本文中通过一个for循环添加了20层单元数为100的全连接层,激活函数为relu,具体见如下代码结构。# tf.keras.models.Sequential()model = keras.models.Sequential()model.add(keras.layers.Flatten(...原创 2020-09-09 09:38:08 · 802 阅读 · 0 评论 -
神经网络基本讲解(神经网络、激活函数、归一化与批归一化、dropout)
深度神经网络:层次非常深的神经网络归一化:把输入数据做一个规整,使得它均值为0,方差为1。Min-max归一化:x’=(x-min)/(max-min)Z-score归一化:x’=(x-u)/O批归一化:把归一化的思路从输入数据上,扩展到网络的每层激活值上。左图:未归一化,等高线是椭圆,在椭圆上计算梯度时,指向的不一定是圆心,训练轨迹曲折。右图:归一化,...原创 2020-09-09 09:38:24 · 1275 阅读 · 0 评论