tensorflow-MLP python入门

news2024/9/17 8:46:16

目录

创建模型

热编码

keras 模型

模型测试

创建数据集

建立模型

测试


创建模型

"""
model = tf.keras.models.Sequential([
  tf.keras.layers.Dense(10, activation=tf.nn.relu, input_dim=1),
  tf.keras.layers.Dense(10, activation=tf.nn.relu),
  tf.keras.layers.Dense(2, activation=tf.nn.softmax)
])
"""

#!/usr/bin/env python
# -*- coding=utf-8 -*-
import tensorflow as tf
import numpy as np


x1=np.random.random((500,1))
x2=np.random.random((500,1))+1
x_train=np.concatenate((x1, x2))

y1=np.zeros((500,), dtype=int)
y2=np.ones((500,), dtype=int)
y_train=np.concatenate((y1, y2))


# 建立模型
model = tf.contrib.keras.models.Sequential()
# 加入 2D 的 Convolution Layer,接著一層 ReLU 的 Activation 函數
model.add(tf.contrib.keras.layers.Dense(units=10,
                 activation=tf.nn.relu,    #tf.nn.relu
                 input_dim=1))
model.add(tf.contrib.keras.layers.Dense(units=10,
                 activation=tf.nn.relu ))  # tf.nn.relu
model.add(tf.contrib.keras.layers.Dense(units=2,
                 activation=tf.nn.softmax ))  #tf.nn.softmax



model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

model.fit(x_train, y_train,
          epochs=20,
          batch_size=128)


#測試
x_test=np.array([[0.22],[0.31],[1.22],[1.33]])
y_test=np.array([0,0,1,1])

score = model.evaluate(x_test, y_test, batch_size=128)
print("score:",score)

predict = model.predict(x_test)
print("predict:",predict)
print("Ans:",np.argmax(predict[0]),np.argmax(predict[1]),np.argmax(predict[2]),np.argmax(predict[3]))

predict2 = model.predict_classes(x_test)
print("predict_classes:",predict2)
print("y_test",y_test[:])

热编码

"""
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])
"""
 

#!/usr/bin/env python
# -*- coding=utf-8 -*-
import tensorflow as tf
import numpy as np


x1=np.random.random((500,1))
x2=np.random.random((500,1))+1
x_train=np.concatenate((x1, x2))

y1=np.zeros((500,), dtype=int)
y2=np.ones((500,), dtype=int)
y_train=np.concatenate((y1, y2))


# 將數字轉為 One-hot 向量
y_train2 = tf.contrib.keras.utils.to_categorical(y_train,  num_classes=2)

# 建立模型
model = tf.contrib.keras.models.Sequential()
model.add(tf.contrib.keras.layers.Dense(units=10,
    activation=tf.nn.relu,
    input_dim=1))
model.add(tf.contrib.keras.layers.Dense(units=10,
    activation=tf.nn.relu ))  # tf.nn.relu
model.add(tf.contrib.keras.layers.Dense(units=2,
    activation=tf.nn.softmax ))  #tf.nn.softmax

# 設定模型的 Loss 函數、Optimizer 以及用來判斷模型好壞的依據(metrics)
model.compile(optimizer='adam',
    loss=tf.contrib.keras.losses.categorical_crossentropy,
    metrics=['accuracy'])


model.fit(x_train, y_train2,
          epochs=20,
          batch_size=128)



#測試
x_test=np.array([[0.22],[0.31],[1.22],[1.33]])
y_test=np.array([0,0,1,1])
y_test2 = tf.contrib.keras.utils.to_categorical(y_test,  num_classes=2)

score = model.evaluate(x_test, y_test2, batch_size=128)
print("score:",score)

predict = model.predict(x_test)
print("predict:",predict)
print("Ans:",np.argmax(predict[0]),np.argmax(predict[1]),np.argmax(predict[2]),np.argmax(predict[3]))

predict2 = model.predict_classes(x_test)
print("predict_classes:",predict2)
print("y_test",y_test[:])


keras 模型

""" 
x_train = np.random.random((1000, 20))
y_train = keras.utils.to_categorical(np.random.randint(2, size=(1000, 1)), num_classes=2)
x_test = np.random.random((100, 20))
y_test = keras.utils.to_categorical(np.random.randint(2, size=(100, 1)), num_classes=2)

"""

#!/usr/bin/env python
# -*- coding=utf-8 -*-
import keras
from keras.models import Sequential
from keras.layers import Dense
#from keras.optimizers import SGD, Dropout, Activation

# Generate dummy data
import numpy as np


x1=np.random.random((500,1))
x2=np.random.random((500,1))+1
x_train=np.concatenate((x1, x2))

y1=np.zeros((500,), dtype=int)
y2=np.ones((500,), dtype=int)
y_train=np.concatenate((y1, y2))
#y_train = keras.utils.to_categorical(y_train, num_classes=2)



model = Sequential()
model.add(Dense(units=10, activation='relu', input_dim=1))
model.add(Dense(units=10, activation='relu'))
model.add(Dense(units=2, activation='softmax'))


model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

model.fit(x_train, y_train,
          epochs=20,
          batch_size=128)


#測試
x_test=np.array([[0.22],[0.31],[1.22],[1.33]])
y_test=np.array([0,0,1,1])

score = model.evaluate(x_test, y_test, batch_size=128)
print("score:",score)

predict = model.predict(x_test)
print("predict:",predict)
print("Ans:",np.argmax(predict[0]),np.argmax(predict[1]),np.argmax(predict[2]),np.argmax(predict[3]))

predict2 = model.predict_classes(x_test)
print("predict_classes:",predict2)
print("y_test",y_test[:])

模型测试

创建数据集

def CreateDatasets(high,iNum,iArraySize):

    x_train = np.random.random((iNum, iArraySize)) * float(high)

    y_train = ((x_train[:iNum,0]+x_train[:iNum,1])/2).astype(int)     # 取整數

    return x_train, y_train,tf.contrib.keras.utils.to_categorical(y_train, num_classes=(high))

category=10

dim=2

x_train,y_train,y_train2=CreateDatasets(category,1000*10,dim) # 修改這裡

建立模型

model = tf.contrib.keras.models.Sequential()

model.add(tf.contrib.keras.layers.Dense(units=10*100,

    activation=tf.nn.relu,

    input_dim=dim))

model.add(tf.contrib.keras.layers.Dense(units=10*100,

    activation=tf.nn.relu ))

model.add(tf.contrib.keras.layers.Dense(units=10*100,

    activation=tf.nn.relu ))

model.add(tf.contrib.keras.layers.Dense(units=10*100,

    activation=tf.nn.relu ))

model.add(tf.contrib.keras.layers.Dense(units=category,

    activation=tf.nn.softmax ))

model.compile(optimizer='adam',

    loss=tf.contrib.keras.losses.categorical_crossentropy,

    metrics=['accuracy'])

model.fit(x_train, y_train2,

          epochs=20*100,

          batch_size=128*100)

测试


#測試
x_test,y_test,y_test2=CreateDatasets(category,10,dim)
score = model.evaluate(x_test, y_test2, batch_size=128)
print("score:",score)

predict = model.predict(x_test)
#print("predict:",predict)
print("Ans:",np.argmax(predict[0]),np.argmax(predict[1]),np.argmax(predict[2]),np.argmax(predict[3]))

predict2 = model.predict_classes(x_test)
print("predict_classes:",predict2)
print("y_test",y_test[:])

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2117070.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Matlab simulink建模与仿真 第十一章(端口及子系统库)【下】

参考视频:simulink1.1simulink简介_哔哩哔哩_bilibili 八、触发使能子系统 1、Enabled and Triggered Subsystem触发使能子系统概述 触发使能子系统其实是触发子系统和使能子系统二者的结合,当触发端口传来触发信号时,使能端口的输入需要大…

TitleBar:打造高效Android标题栏的新选择

在Android应用开发中,标题栏是用户界面的重要组成部分。一个好的标题栏不仅能够提升应用的专业感,还能增强用户体验。然而,传统的标题栏实现方式往往存在代码冗余、样式不统一、性能开销大等问题。今天,我们将介绍一个名为TitleBa…

自定义类型:结构体(续)

目录 一. 结构体的内存对齐 1.1 为什么存在内存对齐? 1.2 修改默认对齐数 二. 结构体传参 三. 结构体实现位段 一. 结构体的内存对齐 在前面的文章里我们已经讲过一部分的内存对齐的知识,并举出了两个例子,我们再举出两个例子继续说明&…

python进阶篇-day08-数据结构与算法(线性结构介绍与链表实现)

数据的存储和组织形式 程序 数据结构 算法 一. 算法介绍 概述目的 都是可以提高程序的效率(性能), 面试高频考点 数据结构介绍 数据的存储和组织形式, 同样的空间, 不同的结构, 存储的数据不同, 操作方式也不同 算法介绍 为了解决实际的业务问题, 而考虑出来的方法和思路 …

龙芯+FreeRTOS+LVGL实战笔记(新)——06添加二级按钮

本专栏是笔者另一个专栏《龙芯+RT-Thread+LVGL实战笔记》的姊妹篇,主要的区别在于实时操作系统的不同,章节的安排和任务的推进保持一致,并对源码做了完善与优化,各位可以先到本人主页下去浏览另一专栏的博客列表(目前已撰写36篇,图1所示),再决定是否订阅。此外,也可以…

超强的截图工具:PixPin

你是否还在为寻找一款功能强大、操作简便的截图工具而烦恼?市面上那么多工具,常常让人无从选择。今天,想给大家安利一款神器——PixPin,一款真正解放双手的截图工具。 想象一下,你只需要按下快捷键就能轻松完成多种截…

雷电9模拟器安装magisk和lsposed

模拟器环境配置 1、开启root 2、开启System.vmdk可写入 安装magisk 1、新建模拟器、开启root权限、并安装debug版magisk 下载地址去上面吾爱论坛作者文章下载吧!支持他一下! 2、打开magisk的app,点击安装 如果弹出获取权限,直接…

【Socket网络编程原理实践】

socket 基于 TCP/IP协议实现,在网络模型中属于传输层 Java 网络编程中的核心概念 IP 地址:用于标识网络中的计算机端口号:用于标识计算机上的应用程序或进程Socket(套接字):网络通信的基本单位&#xff0…

冒泡排序算法介绍

冒泡排序算法介绍 如果真的累了,就拉上窗帘关上手机关掉闹钟深呼吸一口气钻进被窝,好好地睡一觉,难熬的日子总需要一些温暖,而什么都不如被窝的温暖来的踏实。 冒泡排序是一种经典的排序算法,它通过重复遍历待排序的序…

如何恢复回收站中已删除/清空的文件

回收站清空后如何恢复已删除的文件?是否可以恢复永久删除的文件?或者最糟糕的是,如果文件直接被删除怎么办?本文将向您展示清空回收站后恢复已删除数据的最佳方法。 回收站清空后如何恢复已删除的文件? “回收站清空后…

从零开始搭建GPU深度学习环境(pytorch)

傻乎乎的我,突然发现我自己的笔记本电脑居然有gpu,这个电脑是我弟在2017年购入的。 电脑已经按照了cpu环境,现在增加gpu环境 参考torch的cpu版本和gpu版本有什么区别 torch与cuda版本_mob64ca13f6035c的技术博客_51CTO博客 前言&#xff1a…

Vue3使用Uni-ui的popup弹出层组件

由于uni-ui中有些组件文档的基于vue2编写的,比如popup组件 下面是vue3的写法 除了文档中要求的aleterDialog外,还得利用v-if设置一个isDialog判断 // template // script 解决

数学建模笔记——TOPSIS[优劣解距离]法

数学建模笔记——TOPSIS[优劣解距离法] TOPSIS(优劣解距离)法1. 基本概念2. 模型原理3. 基本步骤4. 典型例题4.1 矩阵正向化4.2 正向矩阵标准化4.3 计算得分并归一化4.4 python代码实现 TOPSIS(优劣解距离)法 1. 基本概念 C. L.Hwang和 K.Yoon于1981年首次提出 TOPSIS(Techni…

【Linux网络】详解TCP协议(1)

🎉博主首页: 有趣的中国人 🎉专栏首页: Linux网络 🎉其它专栏: C初阶 | C进阶 | 初阶数据结构 小伙伴们大家好,本片文章将会讲解 TCP协议 的相关内容。 如果看到最后您觉得这篇文章写得不错&am…

力扣每日一题 有序数组的平方 双指针 逆向思维

Problem: 977. 有序数组的平方 👨‍🏫 灵神题解 class Solution {public int[] sortedSquares(int[] nums) {int n nums.length;int [] ans new int[n];int p n-1;int i 0;int j n-1;while(p > 0){int x nums[i] * nums[i];int y nums[j] * n…

结构体小知识

目录 前言1.结构体数组1.1结构体数组理解1.2结构体数组知识运用1.3 -> 操作符 2. 知识拓展 前言 本期blog是对上一期指针知识的知识补充,如果各位大佬感兴趣的话,可以结合起来一起看! 1.结构体数组 1.1结构体数组理解 结构体数组在本…

关系的规范化与范式详解

在数据库设计中,关系的规范化是确保数据结构合理性、减少冗余和异常的关键步骤。如果你是一个数据库设计的初学者,这篇文章将为你深入浅出地讲解 关系规范化 和 范式 的核心概念,并通过简洁的示例帮助你加深理解。 关系的规范化:…

JavaScript进阶day1

目录 1.作用域 1.1 局部作用域 1.2 全局作用域 1.3 作用域链 1.4 JS垃圾回收机制 1.4.1 什么是垃圾回收机制? 1.4.2 内存的生命周期 1.4.3 算法说明 1.5 闭包 1.6 变量提升 2.函数进阶 2.1 函数提升 2.2 函数参数 2.2.1 动态参数 2.2.2 剩余参数 2.…

GB2312编码(加2020H、8080H原理)

区位码、内码、国标码 转换及原理 背景答题思考相关资料 背景 问题: 某汉字的国标码为5650H,那么它的机内码为( B )。A E6E0H B D6D0H C C6C0H D 8080H答题 思考 为什么要加上2020H和8080H?区位码、内码、国标码怎么转换非常简单…

【硬件知识】关于RAM的“那些事”

文章目录 一、DRAM(动态随机存取存储器)二、SRAM(静态随机存取存储器)三、DRAM和SRAM的差异与区别 一、DRAM(动态随机存取存储器) 工作原理:DRAM使用电容来存储数据。每一位数据通过一个电容和…