tensorflow应用
qq_903012463
这个作者很懒,什么都没留下…
展开
-
windows无权限如何安装TensorFlow-GPU?
window安装tf-gpu原创 2022-09-28 17:06:49 · 506 阅读 · 0 评论 -
AttributeError: ‘tensorflow.python.framework.ops.EagerTensor‘ object has no attribute ‘_in_graph_mod
The reason for the bug is that the tf.keras optimizers apply gradients to variable objects (of type tf.Variable), while you are trying to apply gradients to tensors (of type tf.Tensor). Tensor objects are not mutable in TensorFlow, thus the optimizer canno原创 2022-02-08 19:00:33 · 2529 阅读 · 0 评论 -
Tensorflow 2.x自定义网络层的方法及其注意事项
转载https://zhuanlan.zhihu.com/p/86886620在tensorflow 2.x中自定义网络层最好的方法就是继承tf.keras.layers.Layer类,并且根据实际情况重写如下几个类方法:__init__:初始化类,你可以在此配置一些网络层需要的参数,并且也可以在此实例化tf.keras提供的一些基础算子比如DepthwiseConv2D,方便在call方法中应用;你可以在其中执行所有与输入无关的初始化。build:可以获得输入张量的形状,并可以进行其余的初始化。该方转载 2022-01-03 13:09:50 · 781 阅读 · 1 评论 -
TensorFlow2 关于设置变量是否trainable的难懂点
复杂模型的建立,可以是Model类型里面嵌套Model类型的Layer type,比如:这就会导致层次结构很深。当想要设置深层的权重是否可训练的时候,不要以为把最内层的layer.trainable=True即可了,这还是不够的,要把这一个layer从属的外层layer或者外层model(layer)也设置为 layer.trainable=True,因为TensorFlow2 的层次结构的trainable状态是独立的,外层的状态不会因为你对内层的状态改变而自动调整,要手动从外到内逐层设置,才是正确的原创 2022-01-03 10:33:58 · 1124 阅读 · 0 评论 -
tensorflow2 model.fit()高级使用方法详解
首先是官方文档: def fit(self, x=None, y=None, batch_size=None, epochs=1, verbose=1, callbacks=None, validation_split=0., validation_data=None, shuffle=True, clas原创 2022-01-02 22:29:46 · 1985 阅读 · 1 评论 -
2021-10-01 tensorflow2 model.build()初始化模型后,其实约束还没执行
tensorflow2 的内在BUG是用Sequential创建模型时,model.build()初始化模型后,其实内在约束还没执行,比如kernel_constraint, 需要在第一次参数更新后(即调用 optimizer.gradients()更新权重),他才会执行。所以我使用了这个方法:让他更新一下...原创 2021-10-01 00:38:27 · 2550 阅读 · 0 评论 -
2021-08-18使用TensorFlow图层的“kernel_constraint”实现权重规范化
在[1],Salimans等人 . 提出了一种神经网络归一化技术,称为权重归一化,它对网络层的权重向量进行归一化,与例如批量归一化相反,后者规范化流经该层的实际数据批量 . 在某些情况下,权重归一化方法的计算开销较低,并且还可以在使用批量归一化不可行的情况下使用 .由优化器更新后应用于内核的可选投影函数(例如,用于实现层权重的范数约束或值约束) .我的问题是:是否可以使用上述TensorFlow图层来实现权重标准化 kernel_constraint ?假设 x 是一个形状为 (batch, heigh原创 2021-08-18 16:32:36 · 474 阅读 · 0 评论 -
kera-bert,keras, tensorflow版本对应
tensorflow2太好用了,相对来说tensorflow1就是个智障。而bert一点都不友好,几千行代码。kera_bert对bert进行了很好的封装,太棒了!tensorflow-gpu 2.2.0keras 2.4.3keras-bert 0.88.0原创 2021-08-04 20:24:53 · 2445 阅读 · 2 评论 -
layers.GlobalAveragePooling1D()的作用:接入Dense层之前,一定要把数据打平!
self.avgpool = layers.GlobalAveragePooling2D()可以用来打平!如果你的数据是3D的,要用 layers.GlobalAveragePooling1D()!效果:TensorShape([8, 200, 256]) ===> TensorShape([8, 256]) # self.final_bn = layers.BatchNormalization() # 接入Dense层之前,先打平!!! self.avgpool =原创 2021-08-04 20:22:36 · 1584 阅读 · 0 评论 -
tensorflow BERT创建模型 并训练的流程(使用estimator)
step1. 创建一个网络model_fn = model_fn_builder( bert_config=bert_config, num_labels=len(label_list), init_checkpoint=FLAGS.init_checkpoint, learning_rate=FLAGS.learning_rate, num_train_steps=num_train_steps, num_warmup_steps=num_warmup_s原创 2021-08-03 08:02:56 · 651 阅读 · 0 评论 -
Bert模型创建过程解读
def create_model(bert_config, is_training, input_ids, input_mask, segment_ids, labels, num_labels, use_one_hot_embeddings): """Creates a classification model.""" model = modeling.BertModel( config=bert_config, is_tr原创 2021-08-01 20:03:28 · 254 阅读 · 0 评论 -
看懂tf.app.run()
# 前面的代码省略了...def main(argv=None): mnist = input_data.read_data_sets("F:\mydata\TensorFlowData\MNIST_data", one_hot=True) train(mnist)if __name__ == '__main__': tf.app.run()大概意思是通过处理flag解析,然后执行main函数。说白了,有两种情况:如果你的代码中的入口函数不叫main(),而是一个其他原创 2021-08-01 18:21:11 · 129 阅读 · 0 评论 -
tensorboard已经安装却用不了?!
这个问题又尬了两个小时,解决方法是与Tensorflow版本相匹配!原创 2021-08-01 17:52:41 · 328 阅读 · 0 评论 -
Bert模型如何在之前训练基础上继续训练?
step1:改动这一行代码。ckpt-18000代表这个是第18000步训练后保存的FLAGS.init_checkpoint='./mysim_model2/model.ckpt-18000'step2:FLAGS.num_train_epochs=100总的训练次数要调的比之前更大。原创 2021-08-01 17:06:45 · 1231 阅读 · 0 评论 -
Bert模型参数及运行脚本编写
python run_classifier.py \ --task_name=mytask \ --do_train=true \ --do_eval=true \ --data_dir=$DATA_DIR/ \ --vocab_file=$BERT_BASE_DIR/vocab.txt \ --bert_config_file=$BERT_BASE_DIR/bert_config.json \ --init_checkpoint=$BERT_BASE_DIR/bert_mode转载 2021-08-01 13:07:43 · 565 阅读 · 0 评论 -
conda安装指定版本tensorflow
conda安装指定版本tensorflowconda install --channel https://conda.anaconda.org/anaconda tensorflow-gpu=1.13.1如果有的包超时了没安装上,直接重新执行一遍就行import tensorflow as tf tf.test.is_gpu_available()原创 2021-07-31 21:21:07 · 735 阅读 · 0 评论 -
spyder如何切换python虚拟环境?
在anaconda下创建了很多个python虚拟环境,现在我想使用 spyder 运行python程序,并且使用其中某一个虚拟环境,方法如下:首先要知道 Anaconda自带的spyder使用的是base环境,现在我想使用自己创建的 pytorch 虚拟环境。1)打开 Anaconda prompt ,切换至想要使用的虚拟环境,输入命令:activate pytorch2)在此虚拟环境下安装 spyder,输入命令:conda install spyder经过一段时间的安装,就会发现 所有原创 2021-07-31 20:07:51 · 5517 阅读 · 2 评论 -
tensorflow2.x如何输出当前的学习率?optimizer=adam(learningschedule)
假如optimizer=adam(learningschedule),这里learning_schedule是一个学习率衰减PolynomialDecay,那么我想在optimizer.apply_gradient前输出当前所使用的的学习率,该如何处理呢?print(optimizer.lr.numpy().item())原创 2021-07-14 08:39:31 · 1947 阅读 · 1 评论 -
软阈值函数S的快速计算方法
def S_Func(z): # z is np.narray type global lr, lamda, alpha r = lr*lamda*(1-alpha) print(np.sign(z),'\n') print(np.maximum(np.abs(z)-r, 0)) result = np.sign(z) * np.maximum(np.abs(z)-r, 0) return result原创 2021-05-20 14:03:37 · 306 阅读 · 0 评论 -
tensorflow2 给指定某一层权重赋值的绝骚操作
model.weights是不可更改的变量类型,自定义的给层手动赋值绝非易事。直接上代码:# 给第一隐藏层赋值为例optimizer2 = tf.keras.optimizers.SGD(lr=1.0)layer1 = model.layers[0]# theta1是网络原本带的权重 theta2 = [1,1,1,2,85,54,41] # 自己定义的权重optimizer2.apply_gradients(zip([theta1-theta2], layer1.trainable_varia原创 2021-05-20 12:49:05 · 1823 阅读 · 0 评论 -
tensorflow2.x实现Variable,Tensor转化为Numpy
Variable或者Tensor或许有numpy这个属性,直接tensor_name.numpy()或许就可以了。原创 2021-05-09 20:07:16 · 658 阅读 · 4 评论 -
TensorFlow 中求张量(向量)范数
在 TensorFlow 中,可以通过tf.norm(x, ord)求解张量的L1, L2, ∞等范数,其中参数ord指定为1,2 时计算L1, L2 范数,指定为np.inf 时计算∞ −范数原创 2021-05-09 18:32:05 · 871 阅读 · 0 评论 -
深度学习Tensorflow2.0之残差网络
resnet.pyimport tensorflow as tffrom tensorflow import kerasfrom tensorflow.keras import layers, Sequentialclass BasicBlock(layers.Layer): def __init__(self, filter_num, stride=1): super(BasicBlock, self).__init__() se.原创 2021-04-15 16:32:05 · 464 阅读 · 0 评论 -
tensorflow2.0生成dataset的几点坑
(x, y), (x_test, y_test) = keras.datasets.mnist.load_data()db_train = tf.data.Dataset.from_tensor_slices((x, y))上面x是numpy.array数组。tf.data.Dataset.from_tensor_slices还可以直接接收列表。有一种情况会报错,ValueError: Failed to convert a NumPy array to a Tensor (Unsupported原创 2021-03-11 23:08:57 · 342 阅读 · 1 评论 -
深度学习和小波去噪做资产定价
1.file_name: model.pyimport keras.layers as klfrom keras.models import Modelfrom keras import regularizersimport pandas as pdimport numpy as npimport matplotlib.pyplot as pltfrom bokeh.plotting import output_file, figure, showclass NeuralNetwork:原创 2020-10-09 21:19:45 · 328 阅读 · 3 评论 -
为什么将机器学习应用于资产定价?
以下分享Shihao Gu等的文献的一个章节,因为读到这里很感动,所以特地记下来。A number of aspects of empirical asset pricing make it a particularly attractive field for analysis withmachine learning methods.Two main research agendas have monopolized modern empirical asset pricing research原创 2020-09-30 10:09:50 · 1462 阅读 · 0 评论 -
如何快速的知道tensorflow的某种层的输入与输出结构?
最快的学习方式是:自己手动建立一层,看一下输入输出的维度。比如:hiden = layers.LSTM(2)x = tf.constant(np.arange(45).reshape(3,5,3),dtype=tf.float32)y = hiden(x)发现,LSTM的输入一定是3维的,分别是(Batch, 时间戳,属性维度)。输出一定是2维的,分别是(Batch, lstm_units)。所以,LSTM可以直接连接Dense层。但是Conve层必须先flat才能Dense层。self.fl原创 2020-09-01 13:48:19 · 534 阅读 · 0 评论 -
给小白入门看:tensorflow输入维度
输入全连接层,一定要把tensor调整为二维的,比如[None, 512].输入LSTM之前,要把维度调整为三维的,比如[None, 20,60],None是batch_size随意的意思,20代表循环输入20个时间戳,60代表每个时间戳有60个特征属性。...原创 2020-08-31 19:43:12 · 1887 阅读 · 0 评论 -
TensorFlow2.0如何轻松地输出中间层结果
检查模型——各层权重、中间层输出也许你也遇到过训练好的模型输出了一些奇怪的结果,比如总是输出不变的常数。排错到怀疑人生,可能都发现不了问题究竟出在哪。这就需要你逐层分析输出结果,看下有没有诡异的地方。方法如下: layer1 = tf.keras.layers.Dense(30) layer2 = tf.keras.layers.Dense(50) ... layer5 = tf.keras.layers.Dense(30) model = tf.keras.models.Sequenti原创 2020-08-25 14:06:39 · 3949 阅读 · 4 评论 -
Tensorflow2.0一种灵活切割训练集验证集测试集的方式
神经网络进行训练之前,通常要将数据集分为train_db, test_db, val_db,一般数据集(numpy.ndarray 格式的 x和y对应起来的)是比较好切割的,可以用以下前三种方法,对于时间序列数据的处理,重点看最后一种方法:方法一:借用三方sklearn库train_test_split只能切2份,所以我们需要切2次:from sklearn.model_selection import train_test_splitx_train, x_test, y_train, y_tes原创 2020-08-25 11:42:47 · 10060 阅读 · 3 评论 -
老外Sunspot案例
或另一种复杂模型(预测sunspot用的)model = tf.keras.models.Sequential([ tf.keras.layers.Conv1D(filters=60, kernel_size=5, strides=1, padding="causal", activation="relu", input_shape=[None, 1]), tf.ke原创 2020-09-26 20:16:52 · 316 阅读 · 1 评论 -
学习率衰减的实现方法
方法一:在自定义的迭代过程中,随意设置每一次迭代的学习率甚至学习方法optimizer = SGD(learning_rate=0.2)for epoch in range(100): # get loss # change learning rate optimizer.learning_rate = 0.2 * (100-epoch)/100 # update weights方法二:利用callback回调实现lr_schedule = tf.keras.callbacks.L原创 2020-09-26 20:15:44 · 820 阅读 · 0 评论 -
Tensorflow我曾出现的问题、pip更新tf版本
(1)build输入层并非必须手动添加,如果没有,运行model.fit时会自动buildmodel.build(input_shape=(batch_size, X, X)) (2)原创 2020-09-26 20:15:16 · 370 阅读 · 0 评论 -
老外的时间序列预测示例,类似于自回归
第一步,array用tf.data.Dataset.from_tensor_slices变成可迭代的tensor,(和第一个教程不一样,他是先tf.constant转化为tensor又带入from......()) # 第二步,用.window方法将原数据扩展成应有的元素,drop_remainder用来忽略最后不整齐的 # 第三步,批处理flat_map,将长数据列分成一个个window用[]括起来。他的这个window是包括lable的 # 第四步,打乱 # 第五步,用map批处原创 2020-09-26 20:13:33 · 266 阅读 · 0 评论 -
如何把Datafram转化为window_dataset?
时间序列数据(df)转为window_dataset# 第1步: tf.constant()可以将numpy.arry类型转化为tensor, df.values正是np.array# 第2步: tf.data.Dataset.from_tensor_slices()是可以把数据转化为tensor的另一种形式,貌似是做成了一个迭代器?(可不可以直接从array过来)# 第3步:用这个可迭代的tensor,的window方法,按照(window_size, shift)把原始数据扩展为目标数据集应有的元原创 2020-09-26 20:12:42 · 301 阅读 · 0 评论 -
深度学习Tensorflow之预测Stock价格的实例
import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport tensorflow as tffrom tensorflow.keras import models,layers,losses,metrics,callbacksimport seaborn as snsimport timeimport osos.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'gpus原创 2020-08-19 14:58:34 · 235 阅读 · 0 评论 -
tf.layers.conv1d函数介绍
首先这个层的参数如下tf.layers.conv1d(inputs,filters,kernel_size,strides=1,padding=‘valid’,data_format=‘channels_last’,dilation_rate=1,activation=None,use_bias=True,kernel_initializer=None,bias_initializer=tf.zeros_initializer(),kernel_regularizer=None,转载 2020-09-26 20:16:04 · 1058 阅读 · 0 评论