寻找最小误差(loss) tensorflow(2)

本文详细介绍了如何在Python中使用TensorFlow构建全连接层,包括权重和偏置的定义,以及如何利用训练集进行模型训练。内容涵盖了从数据预处理到模型结构的实现过程。
摘要由CSDN通过智能技术生成

for line in lines:

line = line.strip()

key, value = line.split(’ ')

image_to_label[key] = value

构造训练集

X_train = []

y_train = []

for jpg in os.listdir(data_home):

image = cv2.imread(data_home + jpg)

x = cv2.resize(image, (64, 64))

X_train.append(x)

y = image_to_label[jpg]

y_train.append(y)

X_train = np.array(X_train).reshape((1000, -1))

y_train = np.array(y_train).reshape((-1, 1))

print(X_train.shape)

print(y_train)

def get_biases(shape):

‘’’

函数的偏置定义。tf.get_variable(name,shape,dtype,initializer)

参数

1.name:“biases”

2.shape:[size],即[输出维度]

3.dtype:tf.float32

4.initializer:初始化方式initial,我们选择常量初始化

语法:tf.constant_initializer(value)

参数:

1)value:常数。0.1

:param shape: 偏置输出维度

:return: 偏置变量

‘’’

TODO:1.使用tf.constant_initializer(0.1)函数定义初始化方式

initial = tf.constant_initializer(0.1)

TODO:2.使用tf.get_variable函数定义偏置变量

biases = tf.get_variable(“biases”,

shape=shape,

dtype=tf.float32,

initializer=initial)

return biases

def get_weights(shape):

‘’’

定义参数,卷积核/权值

语法:tf.get_variable(name,shape,dtype,initializer)

参数:

1.name:“weights”

2.shape:根据不同的变量,输入不同的shape

3.dtype:tf.float32

4.initializer:初始化方式initial,我们选择初始化方式为截断的正太分布

语法:tf.truncated_normal_initializer(stddev,dtype)

参数:

1)stedev:要生成的随机值的标准偏差。可设置stedev=0.005

  1. dtype:数据类型。只支持浮点类型 可设置dtype=tf.float32。

:param shape:参数shape

:return: 变量参数

‘’’

TODO:1.使用tf.truncated_normal_initializer定义变量的初始化方式

initial = tf.truncated_normal_initializer(stddev=0.005, dtype=tf.float32)

TODO:2.使用tf.get_variable函数定义变量,

weights = tf.get_variable(“weights”,

shape=shape,

dtype=tf.float32,

initializer=initial)

return weights

一层全连接

def add_fc_layer(inputs, insize, outsize, activation_function=None):

‘’’

添加全连接层

1.定义权值weights

2.定义偏置bias

3.完成全连接操作:inputs*weights+bias

4.如果没有激活函数,返回softmax结果

如果有激活函数则,返回activation_function结果

:param inputs: 输入图像

:param insize: 输入维度

:param outsize: 输出维度

:param activation_function: 激活函数

:return: 计算结果

‘’’

TODO:1.调用get_weights()获取权值

weights = get_weights([insize, outsize])

TODO:2.调用get_biases()获取偏置

bias = get_biases([outsize])

TODO:3.使用tf.matmul完成inputs和weights乘法运算;使用+完成与bias的加法运算

wx_plus_b = tf.matmul(inputs, weights) + bias

TODO:4.如果激活函数None,返回tf.nn.softmax结果,否则返回activation_function结果

if activation_function == None:

outputs = tf.nn.softmax(wx_plus_b)

else:

outputs = activation_function(wx_plus_b)

return outputs

全部模型

def inference(inputs):

TODO:1.调用add_fc_layer完成全连接操作1

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)

_convert/9f49b566129f47b8a67243c1008edf79.png)

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值