FlyAI小课堂:Tensorflow基操

article/2025/9/19 11:24:40

人工智能学习离不开实践的验证,推荐大家可以多在FlyAI-AI竞赛服务平台多参加训练和竞赛,以此来提升自己的能力。FlyAI是为AI开发者提供数据竞赛并支持GPU离线训练的一站式服务平台。每周免费提供项目开源算法样例,支持算法能力变现以及快速的迭代算法模型。

目录

  • 一、Tensorflow的排序与张量
  • 二、Tensorflow 计算图
  • 三、Tensorflow中的占位符
    • 3.1 定义占位符
    • 3.2 为占位符提供数据
    • 3.3 用batch_sizes为数据阵列定义占位符
  • 四、Tensorflow 的变量
    • 4.1 定义变量
    • 4.2 初始化变量
    • 4.3 变量范围
  • 五、建立回归模型
  • 六、在Tensorflow计算图中用张量名执行对象
  • 七、在Tensorflow中储存和恢复模型
  • 八、把张量转换成多维数据阵列
    •  8.1 获得张量的形状
    • 8.2 改变张量的形状
    • 8.3 将张量分裂为张量列表
    • 8.4 张量的拼接
  • 九、控制流构图
    • 9.1 条件语句
    • 9.2 执行python的if...else语句
    • 9.3 执行python的while语句
  • 十、用TensorBoard可视化图

前言

假设已经安装好tf

参考https://mp.weixin.qq.com/s/Gc-Sm2eClnbl7Ak216ngjw

全部代码:戳我

 

一、Tensorflow的排序与张量


 

张量是通用的数学符号,代表保存数据值的多维列阵,张量的维数称为阶。

 

import tensorflow as tf
import numpy as np# 获取张量的阶(从下面例子看到tf的计算过程)
g = tf.Graph()
# 定义一个计算图
with g.as_default():## 定义张量t1,t2,t3t1 = tf.constant(np.pi)t2 = tf.constant([1, 2, 3, 4])t3 = tf.constant([[1, 2], [3, 4]])## 获取张量的阶r1 = tf.rank(t1)r2 = tf.rank(t2)r3 = tf.rank(t3)## 获取他们的shapess1 = t1.get_shape()s2 = t2.get_shape()s3 = t3.get_shape()print("shapes:", s1, s2, s3)
# 启动前面定义的图来进行下一步操作
with tf.Session(graph=g) as sess:print("Ranks:", r1.eval(), r2.eval(), r3.eval())

 

shapes: () (4,) (2, 2)
Ranks: 0 1 2

二、Tensorflow 计算图

 

用计算图推导从输入到输出的所有张量之间的关系。

假设有0阶张量a,b,c,要评估z=2(a-b)+c  ,可以表示为下图所示的计算图:

 

 计算图就是一个节点网络,每个节点就像是一个操作,将函数应用到输入张量,然后返回0个或者更多个张量作为张量作为输出。

代码实现

# 初始化一个空的计算图
g = tf.Graph()# 为该计算图加入节点(张量和操作)
with g.as_default():a = tf.constant(1,name="a")b = tf.constant(2,name="b")c = tf.constant(3,name="c")z = 2*(a-b)+c# 执行计算图
## 通过调用tf.Session产生会话对象,该调用可以接受一个图为参数(这里是g),否则将启动默认的空图
## 执行张量操作的用sess.run(),他将返回大小均匀的列表
with tf.Session(graph=g) as sess:print('2*(a-b)+c =>',sess.run(z))
2*(a-b)+c => 1

Tensorflow编制计算图步骤如下: 

    1. 初始化一个空的计算图

    2. 为该计算图加入节点(张量和操作)

    3. 执行计算图:

        a.开始一个新的会话

        b.初始化图中的变量

        c.运行会话中的计算图

 

三、Tensorflow中的占位符

Tensorflow有提供数据的占位符,他们是一些预先定义好类型和形状的张量。

3.1 定义占位符

通过调用tf.placeholder函数把这些张量加入计算图中,而且他们不包括任何数据。然而一旦执行图中的特定节点就需要提供数据阵列

g = tf.Graph()with g.as_default():tf_a = tf.placeholder(tf.int32,shape=(),name="tf_a")  # shape=[]就是定义0阶张量,更高阶张量可以用【n1,n2,n3】表示,如shape=(3,4,5)tf_b = tf.placeholder(tf.int32,shape=(),name="tf_b")tf_c = tf.placeholder(tf.int32,shape=(),name="tf_c")r1 = tf_a - tf_br2 = 2*r1z = r2 + tf_c

3.2 为占位符提供数据

#在图中处理节点的时候,需要产生python字典来为占位符来提供数据阵列。
with tf.Session(graph=g) as sess:feed = {tf_a:1,tf_b:2,tf_c:3}print('z:',sess.run(z,feed_dict=feed))

 

3.3 用batch_sizes为数据阵列定义占位符

在构建神经网络模型的时候,有时会碰到大小规模不一致的小批量数据。占位符的一个功能是把大小无法确定的维度定义为None。

g = tf.Graph()with g.as_default():tf_x = tf.placeholder(tf.float32,shape=(None,2),name="tf_x")x_mean = tf.reduce_mean(tf_x,axis=0,name="mean")np.random.seed(123)
with tf.Session(graph=g) as sess:x1 = np.random.uniform(low=0,high=1,size=(5,2))print("Feeding data with shape",x1.shape)print("Result:",sess.run(x_mean,feed_dict={tf_x:x1}))x2 = np.random.uniform(low=0,high=1,size=(10,2))print("Feeding data with shape",x2.shape)print("Result:",sess.run(x_mean,feed_dict={tf_x:x2}))

四、Tensorflow 的变量


就Tensorflow而言,变量是一种特殊类型的张量对象,他允许我们在训练模型阶段,在tensorflow会话中储存和更新模型的参数。

4.1 定义变量

  • 方式1:tf.Variable() 是为新变量创建对象并将其添加到计算图的类。

  • 方式2:tf.get_variable()是假设某个变量名在计算图中,可以复用给定变量名的现有值或者不存在则创建新的变量,因此变量名的name非常重要!

无论采用哪种变量定义方式,直到调用tf.Session启动计算图并且在会话中具体运行了初始化操作后才设置初始值。事实上,只有初始化Tensorflow的变量之后才会为计算图分配内存。

g1 = tf.Graph()with g1.as_default():w = tf.Variable(np.array([[1,2,3,4],[5,6,7,8]]),name="w")print(w)

4.2 初始化变量

由于变量是直到调用tf.Session启动计算图并且在会话中具体运行了初始化操作后才设置初始值,只有初始化Tensorflow的变量之后才会为计算图分配内存。因此这个初始化的过程十分重要,这个初始化过程包括:为 相关张量分配内存空间并为其赋予初始值。
初始化方式:

    • 方式1.tf.global_variables_initializer函数,返回初始化所有计算图中现存的变量,要注意的是:定义变量一定要造初始化之前,不然会报错!!!

    • 方式2:将tf.global_variables_initializer函数储存在init_op(名字不唯一,自己定)对象内,然后用sess.run出来

with tf.Session(graph=g1) as sess:sess.run(tf.global_variables_initializer())print(sess.run(w))

 

# 我们来比较定义变量与初始化顺序的关系
g2 = tf.Graph()with g2.as_default():w1 = tf.Variable(1,name="w1")init_op = tf.global_variables_initializer()w2 = tf.Variable(2,name="w2")with tf.Session(graph=g2) as sess:sess.run(init_op)print("w1:",sess.run(w1))

 

#错误
with tf.Session(graph=g2) as sess:    sess.run(init_op)print("w2:",sess.run(w2))

 

4.3 变量范围

变量范围是一个重要的概念,对建设大型神经网络计算图特别有用。

可以把变量的域划分为独立的子部分。在创建变量时,该域内创建的操作与张量的名字都以域名为前缀,而且这些域可以嵌套。

 

g = tf.Graph()with g.as_default():with tf.variable_scope("net_A"):   #定义一个域net_Awith tf.variable_scope("layer-1"): # 在域net_A下再定义一个域layer-1w1 = tf.Variable(tf.random_normal(shape=(10,4)),name="weights")   # 该变量定义在net_A/layer-1域下with tf.variable_scope("layer-2"):w2 = tf.Variable(tf.random_normal(shape=(20,10)),name="weights")with tf.variable_scope("net_B"):   # 定义一个域net_Bwith tf.variable_scope("layer-2"):w3 = tf.Variable(tf.random_normal(shape=(10,4)),name="weights")print(w1)print(w2)print(w3)

五、建立回归模型

定义变量:

  • 1.输入x:占位符tf_x

  • 2.输入y:占位符tf_y

  • 3.模型参数w:定义为变量weight

  • 4.模型参数b:定义为变量bias

  • 5.模型输出 ̂ y^:有操作计算得到

 

import tensorflow  as tf
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inlineg = tf.Graph()# 定义计算图
with g.as_default():tf.set_random_seed(123)## placeholdertf_x = tf.placeholder(shape=(None),dtype=tf.float32,name="tf_x")tf_y = tf.placeholder(shape=(None),dtype=tf.float32,name="tf_y")## define the variable (model parameters)weight = tf.Variable(tf.random_normal(shape=(1,1),stddev=0.25),name="weight")bias = tf.Variable(0.0,name="bias")## build the modely_hat = tf.add(weight*tf_x,bias,name="y_hat")## compute the costcost = tf.reduce_mean(tf.square(tf_y-y_hat),name="cost")## train the modeloptim = tf.train.GradientDescentOptimizer(learning_rate=0.001)train_op = optim.minimize(cost,name="train_op")
# 创建会话启动计算图并训练模型
## create a random toy dataset for regression
np.random.seed(0)
def make_random_data():x = np.random.uniform(low=-2,high=4,size=100)y = []for t in x:r = np.random.normal(loc=0.0,scale=(0.5 + t*t/3),size=None)y.append(r)return x,1.726*x-0.84+np.array(y)x,y = make_random_data()plt.plot(x,y,'o')
plt.show()
## train/test splits
x_train,y_train = x[:100],y[:100]
x_test,y_test = x[100:],y[100:]n_epochs = 500
train_costs  = []
with tf.Session(graph=g) as sess:sess.run(tf.global_variables_initializer())## train the model for n_epochsfor e in range(n_epochs):c,_ = sess.run([cost,train_op],feed_dict={tf_x:x_train,tf_y:y_train})train_costs.append(c)if not e % 50:print("Epoch %4d: %.4f"%(e,c))
plt.plot(train_costs)
plt.show()

六、在Tensorflow计算图中用张量名执行对象

## train/test splits
x_train,y_train = x[:100],y[:100]
x_test,y_test = x[100:],y[100:]n_epochs = 500
train_costs  = []
with tf.Session(graph=g) as sess:#修改此处 注意只有张量名才有:0后缀,操作是没有:0后缀的,例如train_op并没有train_op:0#sess.run([cost,train_op],feed_dict={tf_x:x_train,tf_y:y_train})sess.run(tf.global_variables_initializer())## train the model for n_epochsfor e in range(n_epochs):c,_ = sess.run(['cost:0','train_op'],feed_dict={'tf_x:0':x_train,'tf_y:0':y_train})train_costs.append(c)if not e % 50:print("Epoch %4d: %.4f"%(e,c))

七、在Tensorflow中储存和恢复模型


储存的方法是在定义计算图的时候加入:saver = tf.train.Saver(),并且在训练后输入saver.save(sess,'./trained-model')

g = tf.Graph()# 定义计算图
with g.as_default():tf.set_random_seed(123)## placeholdertf_x = tf.placeholder(shape=(None),dtype=tf.float32,name="tf_x")tf_y = tf.placeholder(shape=(None),dtype=tf.float32,name="tf_y")## define the variable (model parameters)weight = tf.Variable(tf.random_normal(shape=(1,1),stddev=0.25),name="weight")bias = tf.Variable(0.0,name="bias")## build the modely_hat = tf.add(weight*tf_x,bias,name="y_hat")## compute the costcost = tf.reduce_mean(tf.square(tf_y-y_hat),name="cost")## train the modeloptim = tf.train.GradientDescentOptimizer(learning_rate=0.001)train_op = optim.minimize(cost,name="train_op")saver = tf.train.Saver()
# 创建会话启动计算图并训练模型
## create a random toy dataset for regression
np.random.seed(0)
def make_random_data():x = np.random.uniform(low=-2,high=4,size=100)y = []for t in x:r = np.random.normal(loc=0.0,scale=(0.5 + t*t/3),size=None)y.append(r)return x,1.726*x-0.84+np.array(y)x,y = make_random_data()plt.plot(x,y,'o')
plt.show()## train/test splits
x_train,y_train = x[:100],y[:100]
x_test,y_test = x[100:],y[100:]n_epochs = 500
train_costs  = []
with tf.Session(graph=g) as sess:sess.run(tf.global_variables_initializer())## train the model for n_epochsfor e in range(n_epochs):c,_ = sess.run(['cost:0','train_op'],feed_dict={'tf_x:0':x_train,'tf_y:0':y_train})train_costs.append(c)if not e % 50:print("Epoch %4d: %.4f"%(e,c))saver.save(sess,'trained-model/')
# 加载保存的模型g2 = tf.Graph()
with tf.Session(graph=g2) as sess:new_saver = tf.train.import_meta_graph("trained-model/.meta")new_saver.restore(sess,'trained-model/')y_pred = sess.run('y_hat:0',feed_dict={'tf_x:0':x_test})
## 可视化模型
x_arr = np.arange(-2,4,0.1)
g2 = tf.Graph()
with tf.Session(graph=g2) as sess:new_saver = tf.train.import_meta_graph("trained-model/.meta")new_saver.restore(sess,'trained-model/')y_arr = sess.run('y_hat:0',feed_dict={'tf_x:0':x_arr})plt.figure()plt.plot(x_train,y_train,'bo')plt.plot(x_test,y_test,'bo',alpha=0.3)plt.plot(x_arr,y_arr.T[:,0],'-r',lw=3)plt.show()

八、把张量转换成多维数据阵列


 8.1 获得张量的形状

在numpy中我们可以用arr.shape来获得Numpy阵列的形状,而在Tensorflow中则用tf.get_shape函数完成:

注意:在tf.get_shape函数的结果是不可以索引的,需要用as.list()换成列表才能索引。

g = tf.Graph()with g.as_default():arr = np.array([[1.,2.,3.,3.5],[4.,5.,6.,6.5],[7.,8.,9.,9.5]])T1 = tf.constant(arr,name="T1")print(T1)s = T1.get_shape()print("Shape of T1 is ",s)T2 = tf.Variable(tf.random_normal(shape=s))print(T2)T3 = tf.Variable(tf.random_normal(shape=(s.as_list()[0],)))print(T3)

8.2 改变张量的形状

现在来看看Tensorflow如何改变张量的形状,在Numpy可以用np.reshape或arr.reshape,在一维的时候可以用-1来自动计算最后的维度。在Tensorflow内调用tf.reshape

with g.as_default():T4 = tf.reshape(T1,shape=[1,1,-1],name="T4")print(T4)T5 = tf.reshape(T1,shape=[1,3,-1],name="T5")print(T5)
with tf.Session(graph=g) as sess:print(sess.run(T4))print()print(sess.run(T5))

8.3 将张量分裂为张量列表

with g.as_default():tf_splt = tf.split(T5,num_or_size_splits=2,axis=2,name="T8")print(tf_splt)

8.4 张量的拼接

g = tf.Graph()with g.as_default():t1 = tf.ones(shape=(5,1),dtype=tf.float32,name="t1")t2 = tf.zeros(shape=(5,1),dtype=tf.float32,name="t2")print(t1)print(t2)
with g.as_default():t3 = tf.concat([t1,t2],axis=0,name="t3")print(t3)t4 = tf.concat([t1,t2],axis=1,name="t4")print(t4)
with tf.Session(graph=g) as sess:print(t3.eval())print()print(t4.eval())with tf.Session(graph=g) as sess:    print(sess.run(t3))print()print(sess.run(t4))

九、控制流构图


Tensorflow执行像python一样的if语句,循环while语句,if...else..语句等。

 

9.1 条件语句

tf.cond()语句来试试: if x >y :res= x+y else : res= x-y

x,y = 1.0,2.0g = tf.Graph()with g.as_default():tf_x = tf.placeholder(dtype=tf.float32,shape=None,name="tf_x")tf_y = tf.placeholder(dtype=tf.float32,shape=None,name="tf_y")res = tf.cond(tf_x<tf_y,lambda: tf.add(tf_x,tf_y,name="result_add"),lambda: tf.subtract(tf_x,tf_y,name="result_sub"))print("Object:",res)  #对象被命名为"cond/Merge:0"with tf.Session(graph=g) as sess:print("x<y: %s -> Result:"%(x<y),res.eval(feed_dict={"tf_x:0":x,"tf_y:0":y}))x,y = 2.0,1.0print("x<y: %s -> Result:"%(x<y),res.eval(feed_dict={"tf_x:0":x,"tf_y:0":y}))​​​​​​​

9.2 执行python的if...else语句

tf.case()f1 = lambda: tf.constant(1)
f2 = lambda: tf.constant(0)
result = tf.case([(tf.less(x,y),f1)],default=f2)
print(result)

9.3 执行python的while语句

tf.while_loop()

i = tf.constant(0)
threshold = 100
c = lambda i: tf.less(i,100)
b = lambda i: tf.add(i,1)
r = tf.while_loop(cond=c,body=b,loop_vars=[i])
print(r)

十、用TensorBoard可视化图


TensorBoard是Tensorflow一个非常好的工具,它负责可视化和模型学习。可视化允许我们看到节点之间的连接,探索它们之间的依赖关系,并且在需要的时候进行模型调试。

def build_classifier(data, labels, n_classes=2):data_shape = data.get_shape().as_list()weights = tf.get_variable(name='weights',shape=(data_shape[1], n_classes),dtype=tf.float32)bias = tf.get_variable(name='bias',initializer=tf.zeros(shape=n_classes))print(weights)print(bias)logits = tf.add(tf.matmul(data, weights),bias,name='logits')print(logits)return logits, tf.nn.softmax(logits)def build_generator(data, n_hidden):data_shape = data.get_shape().as_list()w1 = tf.Variable(tf.random_normal(shape=(data_shape[1],n_hidden)),name='w1')b1 = tf.Variable(tf.zeros(shape=n_hidden),name='b1')hidden = tf.add(tf.matmul(data, w1), b1,name='hidden_pre-activation')hidden = tf.nn.relu(hidden, 'hidden_activation')w2 = tf.Variable(tf.random_normal(shape=(n_hidden,data_shape[1])),name='w2')b2 = tf.Variable(tf.zeros(shape=data_shape[1]),name='b2')output = tf.add(tf.matmul(hidden, w2), b2,name = 'output')return output, tf.nn.sigmoid(output)batch_size=64
g = tf.Graph()with g.as_default():tf_X = tf.placeholder(shape=(batch_size, 100),dtype=tf.float32,name='tf_X')## build the generatorwith tf.variable_scope('generator'):gen_out1 = build_generator(data=tf_X,n_hidden=50)## build the classifierwith tf.variable_scope('classifier') as scope:## classifier for the original data:cls_out1 = build_classifier(data=tf_X,labels=tf.ones(shape=batch_size))## reuse the classifier for generated datascope.reuse_variables()cls_out2 = build_classifier(data=gen_out1[1],labels=tf.zeros(shape=batch_size))init_op = tf.global_variables_initializer()
with tf.Session(graph=g) as sess:sess.run(tf.global_variables_initializer())file_writer = tf.summary.FileWriter(logdir="trained-model/logs/",graph=g)

在win+R输入cmd后切换到运行环境输入:

tensorboard --logdir=C:/Users/**/Desktop/trained-model/logs

浏览器输入:http://localhost:6006/

 全部代码点这里

 

————————————————

更多精彩内容请访问FlyAI-AI竞赛服务平台;为AI开发者提供数据竞赛并支持GPU离线训练的一站式服务平台;每周免费提供项目开源算法样例,支持算法能力变现以及快速的迭代算法模型。

挑战者,都在FlyAI!!!


http://chatgpt.dhexx.cn/article/4qM6wRTh.shtml

相关文章

FlyAI资讯:台积电布局新存储技术

摘要&#xff1a;近年来&#xff0c;在人工智能&#xff08;AI&#xff09;、5G等推动下&#xff0c;以MRAM&#xff08;磁阻式随机存取存储器&#xff09;、铁电随机存取存储器 (FRAM)、相变随机存取存储器&#xff08;PRAM&#xff09;&#xff0c;以及可变电阻式随机存取存储…

强烈推荐!FlyAI机器学习数据竞赛启动,丰厚奖金等你来拿

FlyAI 数据竞赛平台 FlyAI 是隶属于北京智能工场科技有限公司旗下&#xff0c;为AI开发者 &#xff08;深度学习&#xff09;提供数据竞赛并支持GPU离线训练的一站式服务平台。每周免费提供项目开源算法样例&#xff0c;样例所使用开发框架涉及TensorFlow、Keras、PyTorch. 支持…

FlyAI竞赛服务平台赛题上新——手写英文字体识别(名企内推)

人工智能学习离不开实践的验证&#xff0c;推荐大家可以多在FlyAI-AI竞赛服务平台多参加训练和竞赛&#xff0c;以此来提升自己的能力。FlyAI是为AI开发者提供数据竞赛并支持GPU离线训练的一站式服务平台。每周免费提供项目开源算法样例&#xff0c;支持算法能力变现以及快速的…

万元大奖,FlyAI算法新赛事,心理卡牌目标检测

本文转自竞赛社区FlyAI最新上线算法赛。 “心理卡牌目标检测算法赛”由测测星座与趣鸭心理联合发起的线上竞赛项目。2020年新冠肺炎疫情打破了我们平静的生活&#xff0c;影响了我们的身体健康和精神健康。在国家发布的《“健康中国2030”规划纲要》中也提到&#xff0c;要加大…

百万现金奖励,FlyAI实时竞赛等你来战

点击我爱计算机视觉标星&#xff0c;更快获取CVML新技术 这是一种新的算法竞赛方式&#xff01; FlyAI是一个为算法工程师提供&#xff08;深度学习&#xff09;项目竞赛并支持GPU离线训练的网站。目前每周更新两个以上现金奖励的竞赛项目。项目涉及领域包括图像识别/分类/检测…

使用FlyAI进行科学数据竞赛

转自百度经验 https://jingyan.baidu.com/article/acf728fd9c3e6af8e510a392.html 工具/原料 python3 Windows命令行&#xff08;mac/Linux都可运行&#xff0c;此经验以Windows为例&#xff09; 百度经验:jingyan.baidu.com 注册账号 1 使用浏览器打开 www.flyai.com,并点击注…

FlyAI资讯:收藏!深度学习必读10篇经典算法论文总结!

前言 目录 前言 1998年&#xff1a;LeNet 2012年&#xff1a;AlexNet 2014年&#xff1a;VGG 2014年&#xff1a;GoogLeNet 2015年&#xff1a;Batch Normalization 2015年&#xff1a;ResNet 2016年&#xff1a;Xception 2017年&#xff1a;MobileNet 2017年&#…

FlyAi实战之MNIST手写数字识别练习赛(准确率99.55%)

欢迎关注WX公众号&#xff1a;【程序员管小亮】 文章目录 欢迎关注WX公众号&#xff1a;【程序员管小亮】一、介绍二、代码实现1_数据加载2_归一化3_定义网络结构4_设置优化器和退火函数5_数据增强6_拟合数据7_训练轮数和批大小8_准确率和损失 三、总结 一、介绍 最近发现了一…

FlyAI图像识别类竞赛:什么蘑菇?

人工智能学习离不开实践的验证&#xff0c;推荐大家可以多在FlyAI-AI竞赛服务平台多参加训练和竞赛&#xff0c;以此来提升自己的能力。FlyAI是为AI开发者提供数据竞赛并支持GPU离线训练的一站式服务平台。每周免费提供项目开源算法样例&#xff0c;支持算法能力变现以及快速的…

flyai下载预训练的keras模型

进入FlyAI预训练模型地址找到需要的keras模型&#xff0c;相应链接后确定 3.得到复制后的内容 # 必须使用该方法下载模型&#xff0c;然后加载 from flyai.utils import remote_helper path remote_helper.get_remote_date("https://www.flyai.com/m/v0.8|NASNet-mobile…

FlyAI实验室使用教程【完整版】

FlyAI使用教程 文章目录 FlyAI使用教程1、FlyAI是什么&#xff1f;2、账号注册3、文件上传4、代码提交5、怎么训练 1、FlyAI是什么&#xff1f; 想知道FlyAI如何使用&#xff0c;首先你要知道FlyAI是个什么平台&#xff0c;真的蛮良心的一个平台&#xff0c;地址是&#xff1a…

FlyAI资讯:强大如GPT-3,1750亿参数也搞不定中国话

摘要&#xff1a;2019 年&#xff0c;GPT-2 凭借将近 30 亿条参数的规模拿下来“最强 NLP 模型”的称号&#xff1b;2020 年&#xff0c;1750 亿条参数的 GPT-3 震撼发布&#xff0c;并同时在工业界与学术界掀起了各种争论。随着时间的推移&#xff0c;争论的焦点也发生了变化&…

FlyAI-遥感影像场景分类预测经验总结

文章目录 数据介绍经验1. 准确率92.55%&#xff1a;SENet、PyTorch&#xff08;1&#xff09;数据预处理&#xff1a;加权采样&#xff08;2&#xff09;数据增强&#xff1a;采用随机裁剪&#xff0c;随机旋转&#xff0c;随机翻转&#xff0c;随机擦除&#xff08;3&#xff…

FlyAI平台竞赛入门记录

FlyAI算法竞赛平台官方介绍如下&#xff1a; FlyAI 是隶属于北京智能工场科技有限公司旗下&#xff0c;为AI开发者 &#xff08;深度学习&#xff09;提供数据竞赛并支持GPU离线训练的一站式服务平台。每周免费提供项目开源算法样例&#xff0c;样例所使用开发框架涉及TensorFl…

电子邮箱免费注册,比较好用的电子邮箱怎么注册?如何申请?

电子邮箱免费的很多&#xff0c;我们常用的163、TOM、QQ等&#xff0c;如果公司用&#xff0c;就要用企业电子邮箱了。申请企业电子邮箱&#xff0c;注册3年用6年&#xff0c;注册5年用10年&#xff0c;这是在网上看到TOM企业邮箱的优惠&#xff0c;以下是企业邮箱总结。 TOM企…

免费企业邮箱: Google企业邮箱的申请

作者&#xff1a;车东 发表于&#xff1a;2008-02-04 13:02 最后更新于&#xff1a;2008-02-05 14:02版权声明&#xff1a;可以任意转载&#xff0c;转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明。http://www.chedong.com/blog/archives/001420.html 很多创…

IT行业常见职位职业路线图

我曾经面试过一些计算机相关毕业的应届生&#xff0c;问他希望做什么工作时&#xff0c;他回答只要是软件开发就好了&#xff0c;再细问一下你了解到的软件开发是怎样的&#xff1f;除了软件开发&#xff0c;还有其它什么工作&#xff1f;就答不出来了。 这里我先给出一张IT知识…

IT行业的就业前景

IT行业发展日趋迅猛&#xff0c;IT产业的产值成倍增长&#xff0c;发展必然带来人才的需求&#xff0c;因此众多人群想要进入IT行业发展。下面就让我们说一说&#xff0c;IT这个行业发展的前景如何。河北猿代码科技测评名单收集http://hbcjintern.mikecrm.com/N2zHNvB 1、就业…

IT行业中,哪些岗位能够“越老越吃香”

每一个进入互联网IT行业的人&#xff0c;都是根据根据自己的兴趣找到了适合自己的专业&#xff0c;这样的专业和行业&#xff0c;不仅能学到前沿技术&#xff0c;还能紧跟时代发展&#xff0c;参与并引领时代的 更新。如果毕业后从事的工作可以一直做下去&#xff0c;越老越吃香…

IT行业的哪些岗位比较有前途?

2023年是疫情全面放开的第一年&#xff0c;意味着经济在慢慢复苏&#xff0c;工作生活慢慢回到正轨。同时也有了更多的机会和挑战&#xff0c;疫情三年&#xff0c;很多人都是在自己的位置上静默沉淀&#xff0c;也有的被迫失业待业……但是新的一年刚刚开始&#xff0c;一切都…