黑马深度学习和CV入门1——tensorflow

# #!/usr/bin/env python
# # -*- coding:utf-8 -*-

import tensorflow as tf
import numpy as np
# 张量的操作
# print(tf.constant(3))
# print(tf.constant([1.0,2.0,3.0]))
# a = tf.constant(
#    [ [1,2],
#     [3,4],
#     [5,6],],dtype=tf.float16
# )
# print(a)
# b = tf.constant([
#     [[1,2,3,4,5],
#      [2,3,4,5,6]],
#     [[1,2,3,4,5],
#      [2,3,4,5,6]]
# ],dtype=tf.float16)
# print(b)
# ###转换成numpy
# tensor1 = tf.constant([1,2,3,4,5])
# print(tensor1)
# print(np.array(tensor1))
# print(tensor1.numpy())

###常用函数
# a = tf.constant([[1,2],
#                 [3,4]])
# b = tf.constant([[1,1],
#                  [1,1]])
#
# print(tf.add(a,b))  #元素加法
# print(tf.multiply(a,b))  #元素相乘
# print(tf.matmul(a,b))   #矩阵乘法
# print(tf.reduce_max(a))  #最大值
# print(tf.argmax(a))  #最大值索引
# print(tf.reduce_mean(a))  #平均值

###变量variable:变量是一种特殊的张量,形状是不可变的,单可以更改其中的参数
var = tf.Variable([[1,2],[3,4]])
print(var)
print(var.shape)
print(var.dtype)
print(var.numpy())
var.assign([[2,3],[4,5]])

tf.keras的常用方法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

快速入门模型(鸢尾花分类)

在https://github.com/mwaskom/seaborn-data下载数据集,并放到python文件夹中。

会报错

import seaborn as sns
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegressionCV

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from tensorflow.keras import utils


#数据处理
#加载数据
iris = sns.load_dataset('iris')
print(iris.shape)
print(iris.head())
sns.pairplot(iris,hue="species")
#获得数据集的特征值和目标值
x = iris.values[:,:4]
y = iris.values[:,4]
#数据集划分
train_x,test_x,train_y,test_y=train_test_split(x,y,test_size=0.5,random_state=0)
print(train_x.shape)
print(test_x.shape)
#sklearn 实现鸢尾花
#使用逻辑回归
#实例化估计器
lr=LogisticRegressionCV()
#模型训练
lr.fit(train_x,train_y)
#模型评估
lr.score(test_x,test_y)

可运行

import seaborn as sns
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegressionCV
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from tensorflow.keras import utils
import matplotlib.pyplot as plt


#加载数据
iris = sns.load_dataset('iris')
print(iris.shape)
print(iris.head())
sns.pairplot(iris,hue="species")
plt.show()

x = iris.values[:,:4]
y = iris.values[:,4]

train_x,test_x,train_y,test_y = train_test_split(x,y,test_size=0.5,random_state=0)
print(train_x.shape)
print(test_x.shape)

# lr = LogisticRegressionCV()
# lr.fit(train_x,train_y)
# lr.score(test_x,test_y)

#独热编码
def one_hot_encode(arr):
    uniques,ids = np.unique(arr,return_inverse=True)
    return utils.to_categorical(ids,len(uniques))

train_y_ohe = one_hot_encode(train_y)
print(train_y_ohe)
test_y_ohe = one_hot_encode(test_y)

model = Sequential([
    Dense(10,activation="relu",input_shape=(4,)),
    Dense(10,activation="relu"),
    Dense(3,activation="softmax")
])

print(model.summary())
utils.plot_model(model,'my_first_model.png')

model.compile(optimizer="adam",loss="categorical_crossentropy",metrics=["accuracy"])
train_x = np.array(train_x,dtype=np.float32)
test_x = np.array(test_x,dtype=np.float32)
model.fit(train_x,train_y_ohe,epochs=20,batch_size=1,verbose=1)
loss,accuracy = model.evaluate(test_x,test_y_ohe,verbose=1)
print(loss,accuracy)




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值