# Trending December 2023 # What Is Tensorflow Argmax With Examples? # Suggested January 2024 # Top 12 Popular

You are reading the article What Is Tensorflow Argmax With Examples? updated in December 2023 on the website Daihoichemgio.com. We hope that the information we have shared is helpful to you. If you find the content interesting and meaningful, please share it with your friends and continue to follow and support us for the latest updates. Suggested January 2024 What Is Tensorflow Argmax With Examples?

Introduction to TensorFlow argmax

Tensorflow argmax is the method present in the math package module of the tensorflow library, which is used for acquiring the maximum value from and across the axes. Tensorflow keras is one of the most popular and highly progressing fields in technology right now as it possesses the potential to change the future of technology. In this article, we will try to understand what tensorflow argmax is, how we can use it, some of the associated tools, and learn about its implementation with the help of certain examples.

Start Your Free Data Science Course

What is TensorFlow argmax?

The tensorflow argmax method belongs to the math module of the TensorFlow library and is used for getting the maximum value among the axes’ values. The syntax of the argmax method is as shown below, which consists of its fully qualified name –

tensorflow.math.argmax(input_data, source_axes, output_dttype, operation_name)

One more argument is named dimension, but it is now deprecated and is of no use, so there is no need to specify. The arguments and parameters used in the above syntax are as described below –

Input_data – This is a tensor and should be of one of the following data types –

18. bool

source_axes – This parameter is also a tensor and should have one of the data types: int 64 or int 32. They must have a value that lies in the range of [-rank (input_data), rank(input_data)]. This parameter helps specify the TensorFlow axis that should be considered for reducing across. In the case of vector quantities, we always set the value of the axis as zero.

output_dttype – This parameter is optional and is used for specifying tensorflowObj.DType that can value either tensorflowObj.int64 or tensorflowObj.int32. The default value of the parameter corresponds to tensorflowObj.int64.

operation_name – This parameter is optional and used to specify the operation’s name to be performed.

How do you use argmax?

The return value of the TensorFlow argmax function is a new tensor with the same type as the output_dttype.

We will need to follow certain steps to use the TensorFlow gather function. Some of them are as listed below –

The required libraries should be imported at the top of the code file.

The input data and the required objects should be assigned the initial value.

You can optionally print your input data if you want to observe before and after the difference.

Use the argmax function to calculate and get the maximum value of the input tensor data.

Evaluate the tensor value

After argmax, you can print the value to observe the difference made by the argmax function.

Run the code and observe the results.

TensorFlow argmax Tools

There is a TF coder tool, which helps create and write down tricky expressions of TensorFlow according to the requirement. For example, when you go for tensor manipulations, you should keep track of tensor shape, various dimensions, and data type compatibility. Along with that, one of the obvious things to keep an eye on is the correctness of mathematical manipulations.

At the same time, the provision of various operations available in TensorFlow makes it difficult to choose a perfect one for us. Making the use of the TF coder tool makes this task easy. So that instead of manually manipulating the code of TensorFlow, we can provide the demonstration of illustrations of certain examples so that it gives us the desired code.

TF coder is a tool for program synthesis and writing TensorFlow’s code. First, you need to provide the input, and after that, it executes the search internally, consisting of combinations that help get the transformation. Finally, the TF coder tool’s output is a code you can add to your project TensorFlow code.

Tensorflow argmax examples

Given below are the examples of TensorFlow argmax:

Example #1

print(‘value: ‘,sample3 )

Output:

The execution of the above code gives the following output as a resultant –

Example #2

print(‘Indices: ‘,sample3 )

Output:

The output of the above code after execution is as shown in the below image –

This is because the maximum value along the axes is 19,18,127 at indices 0,0,0, respectively.

Conclusion

Tensorflow argmax is the TensorFlow library method that helps you find the maximum value among the tensor passed as input along and across the axes. This method can be implemented in TensorFlow in a very easy manner. But, first, we need to calculate the maximum value, evaluate its result, and print it so we can see the output value after execution.

Recommended Articles

This is a guide to TensorFlow argmax. Here we discuss the Introduction, What is TensorFlow argmax, and How do you use argmax?Examples with code implementation. You may also have a look at the following articles to learn more –

You're reading What Is Tensorflow Argmax With Examples?

## What Is Snake Case? Definition & Alternatives (With Examples)

What Is Snake Case?

Snake case is a popular naming convention for combining multiple words in coding. In snake case, the compound words are separated by underscores. This type of naming convention is used to make code more readable. In programming, you cannot use spaces to separate words. This would cause an error. Thus, alternative separation styles, such as the snake case exist. Here are some examples of the snake case:

my_age

MAX_CONNECTIONS_ALLOWED

Snake case is typically used in naming constants. In this case, the letters are typically capitalized.

For example:

PI_APPROX = 3.14159 MAX_CONNECTIONS = 32

Another popular use case for the snake case is labeling the database fields.

For example:

But the naming conventions vary based on coding languages and team preferences. Some Python developers write variables, functions, and method names in snake case.

What Problem Does Snake Case Solve?

In programming, you need to write quality code that is readable and easy to manage. One of the fundamental ways to write clean code is by naming objects consistently. Typically, this means you need to combine multiple words to make the names understandable.

But programming languages don’t allow using spaces.

Usually, you need a name that combines multiple words. For example, mybankaccountbalance. But this name is long and uneasy for eyes. Because of the restrictions in coding languages, you cannot introduce spaces to separate the words.

This is where different case styles chime in. One of the most popular case styles is the snake case. In the snake case, the words are separated by underscores. This naming convention makes long combinations of words much more readable.

For example:

Why Is It Called the Snake Case?

The snake case term stems from the fact that snake case makes the words look like the long body of a snake. The earliest use of this term took place back in 2004. Back in the day, the term camel case was already a thing. The word snake case came to being probably because of the animal association of the camel case.

Other Case Styles

Even though snake case is popular, it’s not the only case style out there. There are four popular case styles used by programmers:

Snake Case

Pascal Case

Camel Case

Kebab Case

For the sake of completeness, let’s inspect the last three case styles.

1. Camel Case (camelCase)

In camel case, compound words begin with capital letters. The only exception is the first word that begins with a lowercase letter.

For example, here is a variable in the camel case:

myBankBalance = 1000

In coding, you typically see the camel case as the convention for naming functions, methods, and variables. But these might vary based on the programming language and context.

There is no right or wrong naming convention as long as the team consistently applies the same conventions throughout the project.

2. Pascal Case (PascalCase)

In Pascal case, each word in a combination of compound words starts with a capital letter. This is very similar to the camel case.

Another way to put it is that the Pascal case is camel case where the first letter is also capitalized.

For example:

MyBankBalance = 100

Pascal case is typically used when naming classes. But remember that the conventions vary based on the programming language and the context.

3. Kebab Case (kebab-case)

In kebab case, compound words are separated by dashes.

my-bank-balance = 101

Kebab case is a less popular case style in programming. This is mainly because most programming languages don’t allow adding dashes between words.

Because of this, you usually see kebab case in URL slugs. For example:

Wrap Up

Today you learned what is the snake case in programming.

To take home, the snake case is a naming convention that helps make your code easier for the eyes. With the snake case, you can separate compound words by underscores. The reason for the snake case and other case styles is that programming languages don’t allow using spaces as separators.

Besides snake case, other popular case styles are:

Camel case (camelCase)

Pascal case (PascalCase)

Kebab case (kebab-case)

All these styles serve the same purpose—to make code understandable in the absence of blank spaces.

## Calculator (Examples With Excel Template)

Start Your Free Investment Banking Course

What is Equity Formula?

Equity = Total Assets – Total Liabilities

There is another method to derive the equity of a company. In this method, all the different classes of equity capital, which includes common/capital stock, share premium, preferred stock, retained earnings and accumulated other comprehensive income, are added while the treasury stocks are deducted. Mathematically, it is represented as,

Equity = Capital Stock + Share Premium + Preferred Stock + Retained Earnings + Accumulated Other Comprehensive Income – Treasury Stock

Examples of Equity Formula (With Excel Template)

Let’s take an example to understand the calculation of Equity in a better manner.

You can download this Equity Formula Excel Template here – Equity Formula Excel Template

Equity Formula – Example #1

Let us take the example of a company ABC Ltd that has recently published its annual report for the financial year ending on December 31, 2023. As per the balance sheet, the total assets of the company stood at \$500,000, while its total liabilities stood at \$300,000 as on December 31, 2023. Determine ABC Ltd’s equity as on the balance sheet date.

Solution:

Equity is calculated using the Formula given below.

Equity = Total Assets – Total Liabilities

Equity = \$500,000 – \$300,000

Equity = \$200,000

Therefore, ABC Ltd’s equity stood at \$200,000 as on December 31, 2023.

Equity Formula – Example #2

Let us take the Real-Life example of Airbus SE’s published annual report as on December 31, 2023. As per the balance, the information is available. Calculate Airbus SE’s equity based on the given information.

Equity is calculated using the Formula given below.

Equity = Capital Stock + Share Premium + Retained Earnings + Accumulated Other Comprehensive Income – Treasury Stock

Equity = €777 + €2,941 + €5,923 + €134 – €51

Equity = €9,724 million

Therefore, Airbus SE’s equity stood at €9,724 million as of December 31, 2023.

Explanation

The formula for equity can be derived by using the following steps:

Step 1: Firstly, determine the total assets of the company, which is the last line item on the asset side of the balance sheet and includes plant, machinery, cash, bank deposits, investments, etc.

Step 2: Next, determine the total liabilities of the company, which is also available in the balance sheet and includes all kinds of debt obligations, payables, etc.

Step 3: Finally, the formula for equity can be derived by subtracting the total liabilities (step 2) from the total assets (step 1) as shown below.

Under the other method, the formula for equity can be derived by using the following steps:

Step 1: Firstly, identify all the different categories of equity capital from the balance sheet.

Step 2: Finally, the formula for equity can be derived by adding up all the categories of equity capital except ones that have been repurchased and retired (also known as treasury stock) as shown below.

Equity = Capital stock + Share premium + Preferred stock + Retained earnings + Accumulated other comprehensive income – Treasury stock

Relevance and Uses of Equity Formula

From the perspective of an investor or an investment analyst, it is important to understand the concept of equity because it predominantly used to evaluate the real value of a company (net worth). In fact, the value of one’s equity investment in the company is captured by the equity value and as such the shareholders are typically concerned with the net worth of the company.

The value of equity can be both positive or negative. A positive equity value indicates that the company has adequate total assets to pay off its total liabilities. On the other hand, a negative value of equity indicates that the company may be on the way to become insolvent as the total liabilities exceed its total assets. Consequently, the investor community, in general, considers a company to be risky and perilous if it has a negative equity value. However, the value of equity in isolation may not give very meaningful insight into a company’s financial health. But an investor can use the equity value to analyze the company to draw significant conclusions if it is used in combination with other financial metrics.

Equity Formula Calculator

You can use the following Equity Formula Calculator.

Total Assets Total Liabilities Equity   Equity = Total Assets

Total Liabilities =

0

0

= 0

Recommended Articles

This is a guide to Equity Formula. Here we discuss how to calculate Equity along with practical examples. We also provide an Equity calculator with a downloadable excel template. You may also look at the following articles to learn more –

## How To Start Tensorflow Docker Jupyter Notebook?

Introduction

Jupyter notebooks are useful for writing, testing, and debugging code. TensorFlow is a machine learning framework that can be used with Jupyter notebooks.

Prerequisites

Before getting started, you will need to have Docker and Docker Compose installed on your machine. You can check if it is installed using the following commands −

\$ docker --version \$ docker-compose --version

You can follow the installation instructions for your operating system here −

Additionally, if you wish to use TensorFlow, you must have a Jupyter notebook file. By visiting the Jupyter homepage and selecting “New,” you can make a new Jupyter notebook if you don’t already have one.

Methods

There are a number of different ways you can utilize Docker to start a TensorFlow Jupyter notebook.

These are the three common ways to do this which we will be discussing here −

Using Docker Pull command

Using a Custom Docker Image

Let us explore these three methods in detail with some examples to solidify our understanding.

Using Docker Pull command

The docker pull command is used to download a Docker image from a registry. This can be useful when you want to start a TensorFlow Docker Jupyter notebook because it allows you to pull a pre-built image that has TensorFlow and Jupyter already installed, rather than building the image yourself.

Example

Here is an example of how we can use the Docker Pull command to start a Jupyter notebook server with TensorFlow.

Step 1 − Pull the TensorFlow Jupyter notebook Docker image from Docker Hub by running the following command in your terminal −

\$ docker pull tensorflow/tensorflow:latest-jupyter Output latest-jupyter: Pulling from tensorflow/tensorflow eaead16dc43b: Pulling fs layer 83bb66f4018d: Pulling fs layer a9d243755566: Pulling fs layer 38d8f03945ed: Waiting 0e62e78ef96b: Pulling fs layer 311604e9ab28: Waiting 584c5149ce07: Waiting 3b5c5b94152b: Waiting bc4c0cbbecee: Pulling fs layer e54d9b2b9c14: Waiting 744251fdb607: Pull complete 4b8f13a1718e: Pull complete 576cd80cf2ef: Pull complete ab9e5d943e8a: Pull complete 948afa4f3678: Pull complete 2881ce411453: Pull complete 3b726e62f5fc: Pull complete 2f02f34d5aa5: Pull complete b294ff4151bd: Pull complete 48f3a326b505: Pull complete 72ab8332d21f: Pull complete d6381c50d9a3: Pull complete 77237dfb2f16: Pull complete Digest: sha256:553be1359899095780cfcfc5bf1c26bca487a606f07a37ba31e1808a98072785 Status: Downloaded newer image for tensorflow/tensorflow:latest-jupyter docker.io/tensorflow/tensorflow:latest-jupyter

Step 2 − Run the TensorFlow Jupyter notebook Docker container by using the following command −

\$ docker run -it -p 8888:8888 tensorflow/tensorflow:latest-jupyter

This command will start the TensorFlow Jupyter notebook in a Docker container and expose port 8888.

Output docker run -it -p 8888:8888 tensorflow/tensorflow:latest-jupyter [I 12:23:48.212 NotebookApp] Writing notebook server cookie secret to /root/.local/share/jupyter/runtime/notebook_cookie_secret [I 12:23:50.824 NotebookApp] Serving notebooks from local directory: /tf [I 12:23:50.825 NotebookApp] Jupyter Notebook 6.5.2 is running at: [I 12:23:50.826 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation). [C 12:23:50.845 NotebookApp] To access the notebook, open this file in a browser: file:///root/.local/share/jupyter/runtime/nbserver-1-open.html Or copy and paste one of these URLs: http://2f07aa29bf45:8888/?token=d2b59435738257715a8a74b73d6c6f13e305008d4451c937 [I 12:24:09.148 NotebookApp] 302 GET / (172.17.0.1) 3.370000ms [I 12:24:09.212 NotebookApp] 302 GET /tree? (172.17.0.1) 2.230000ms

Step 3 − To stop the TensorFlow Jupyter notebook, press “Ctrl+C” in the terminal window where the Docker container is running.

Output

^C[I 12:42:41.867 NotebookApp] interrupted

Serving notebooks from local directory: /tf 0 active kernels Jupyter Notebook 6.5.2 is running at: http://2f07aa29bf45:8888/?token=d2b59435738257715a8a74b73d6c6f13e305008d4451c937 Shutdown this notebook server (y/[n])? y [C 12:42:43.742 NotebookApp] Shutdown confirmed [I 12:42:43.766 NotebookApp] Shutting down 0 kernels [I 12:42:43.804 NotebookApp] Shutting down 0 terminals

Step 4 − To start the TensorFlow Jupyter notebook again, you can use the same Docker run command as before −

\$ docker run -it -p 8888:8888 tensorflow/tensorflow:latest-jupyter Using a Custom Docker Image

You can make your own Docker image to customize the environment for your TensorFlow Jupyter notebook. You must write a Dockerfile that details the base image and any additional dependencies you wish to include in order to accomplish this.

To create a custom Docker image, you will need to create a Dockerfile that defines your image.

Example

Here is an example of a Dockerfile that installs TensorFlow and Jupyter.

Step 1 − Create a new directory for your project and navigate to it.

Step 2 − Create a file called “Dockerfile” in the project directory with the following content −

FROM python:3.8 RUN pip install tensorflow RUN pip install jupyter

These commands are used to install TensorFlow and Jupyter from the Python 3.8 version.

Step 2 − To build the image, you can run the following command in your terminal −

\$ docker build -t mytensorflow .

The build is going to take a while to build this Tensorflow image. The result will be an image called “mytensorflow.”

Output [+] Building 465.6s (7/7) FINISHED

Use ‘docker scan’ to run Snyk tests against images to find vulnerabilities and learn how to fix them

Step 3 − Run the following command in the terminal to launch a Jupyter notebook server using this image −

\$ docker run -it -p 8888:8888 mytensorflow

If this command does not seem to work, try the below command −

\$ docker run -it -p 8888:8888 tensorflow/tensorflow:latest-jupyter

Step 4 − If the former command works, you should see a link printed in the terminal, and in case of the alternate command, use this link to start TensorFlow Jupyter Notebook in a new window −

Conclusion

In this article, we explored how to start a TensorFlow Docker Jupyter notebook. We looked at three different methods for starting a TensorFlow Jupyter notebook, including using the TensorFlow Docker image, creating a custom Docker image, and using Docker Compose. With any of these methods, you can easily set up a TensorFlow Jupyter notebook and start working with TensorFlow in a Docker container.

## What Is Xrp, And What Does It Have To Do With Ripple?

The XRP cryptocurrency token was created by Ripple to move transactions away from central databases controlled by financial institutions onto a more open infrastructure.

XRP

Not only would XRP reduce costs, but it would also cut down on transaction times. Ripple (the company behind XRP) believes that this new system would make transfers of money faster and more secure.

Ripple has built a technology stack for payments using XRP called the RippleNet. Utilizing the cryptocurrency’s blockchain functionality allows users to send money across borders without having to rely on expensive third-party services like banks and money transfer services. What’s more, the transactions are recorded on a distributed ledger managed by Ripple, making them transparent and secure.

XRP is an open-source digital asset that has been designed to facilitate cross-border payments and reduce costs. It can be used as a medium of exchange between two parties in any currency or commodity, including fiat currency and cryptocurrencies. What’s more, it offers a fast settlement time of just 4 seconds, significantly faster than other payment technologies like wire transfers and credit cards.

XRP has become an important part of Ripple’s overall vision to revolutionize the way payments are made worldwide. It provides an efficient and low-cost way to send money overseas and is key in allowing RippleNet to provide a secure, transparent, and fast payment infrastructure. The asset has the potential to change how we move money around the globe, making it easier and more cost-effective for all.

The XRP token was invented by Ripple Labs Inc. in order to facilitate global payments through its RippleNet platform. Although the company owns a large portion of the XRP tokens, it does not control them or their value. The market decides the worth of each token, and anyone can buy, sell, or trade XRP on an open exchange.

Who created XRP?

XRP’s history is complex, as it involves several individuals who were involved in creating both the technology behind it and the business entities that helped it grow.

XRP is frequently credited to OpenCoin co-founders Chris Larsen (who created multiple fintech companies), Arthur Britto (who assisted in developing the XRP Ledger), and Jed McCaleb (who also founded Mt. Gox). Other people also participated.

Understanding Ripple and XRP’s Differences

Ripple vs. XRP

Ripple is an American technology company that specializes in developing software solutions for payments and currency exchange. It created the RippleNet platform to facilitate secure international transactions using its digital asset XRP.

XRP, on the other hand, is a digital asset that was developed to facilitate payments and money transfers between two parties. It is a currency token, meaning it can be used as a medium of exchange between any two parties in any currency or commodity. What sets XRP apart from other digital assets is its low cost and fast settlement time (4 seconds). It has been adopted by Ripple as the native asset of its RippleNet platform.

After the XRP Ledger was up and running, its developers decided to gift 80 billion tokens to Ripple as it would work with the community to support the cryptocurrency.

To sum up, while Ripple is a technology provider and payment solutions provider that created and operates the RippleNet platform with its native digital asset XRP, it does not own or control XRP. What’s more, anyone can buy, sell, or trade XRP on an open exchange.

How is the XRP Ledger so efficient?

The fact that the typical XRP transaction costs \$0.0013927 may surprise even seasoned cryptocurrency users. What allows the XRP Ledger to offer such low transaction fees is its unique design, which eliminates many of the inefficiencies that make other blockchain networks costly and slow.

For instance, instead of using a proof-of-work consensus algorithm as Bitcoin does, XRP utilizes a consensus process called “Ripple Protocol Consensus Algorithm” (RPCA) to reach an agreement on transactions. What this means is that instead of having miners validate transactions, XRP relies on a select group of validators who are chosen by the network and can be trusted to verify every transaction. This reduces the processing time significantly, as there’s no need for energy-consuming mining or waiting for blocks to be verified.

Furthermore, XRP also has a unique feature called “transaction costs” that allows the network to adjust its fees depending on the load on the system. This means that during times of high demand transaction costs can be slightly higher in order to incentivize validators and keep transactions moving quickly.

Understanding XRP’s value

The XRP Ledger software upholds the pre-mined cap of 100 billion XRP, which means no further tokens will ever be produced. In order to finance its technology and development, Ripple escrowed the majority of the leftover tokens after distributing 55 billion to forum participants. This limited XRP supply has the potential to increase its value over time, as some industry experts have argued.

On top of that, the increasing adoption of XRP by institutions. Companies and individuals also play a role in determining its price. What’s more, the partnerships Ripple has established with banks and payment networks, such as MoneyGram, Mercado Pago, and Santander.

In conclusion, XRP is a digital asset created by Ripple to provide fast and low-cost payments across borders. What sets it apart from other cryptocurrencies is its unique design which helps keep transaction costs down. It also has a limited supply, so the coin may appreciate over time. What’s more, its increasing adoption by institutions, companies, and individuals is contributing to its value as well.

Related articles:

## How Parents() Function Works With Examples

Introduction to jQuery parents

Web development, programming languages, Software testing & others

Syntax:

\$(selector ).parents(filter_expr)

Or

\$(selector).parents()

In the above-given syntax, the jQuery parents() function is applied on a particular element. It is a selector tag where all ancestors are returned when this parent () function is applied to this selector tag. This function does not take any parameters, but still, it is considered optional.

selector: In this, the selector is nothing, but it is an HTML element or tag of which we want the element’s ancestors or grandparent element to be returned.

filter_expr: This is an optional parameter in this function for specifying the selector tag expression to look upwards in the DOM tree for searching with all this selector’s ancestors.

How parents() Function Works with Examples

In jQuery, the parents() function is a built-in function for displaying all the ancestors of the selected HTML tag for which this function needs to be applied. The working of this function is very simple Firstly, it will check for the specified selector tag, followed by the period (dot) operator and the parents() method to this selector tag. This function will traverse the entire DOM tree, where this tree is the representation of elements of the jQuery object.

Therefore parents() function traverses this DOM tree in the upward direction to search all the element’s ancestors such as grandparent element, great grandparent element, etc. are all displayed, which means this function parent () returns all the ancestor elements of the particular selected or matched HTML tag that is specified before the function declaration, and this particular specified selector optionally filters it. This function returns the element set in reverse order for the given multiple DOM having the original set, and the duplicate elements are removed and displayed.

Example #1

Code:

.parents_func_body* { display: block; border: 2px solid red; color: red; padding: 5px; margin: 15px; } <script \$(document).ready(function() { \$(“p”).parents().css({ “color”: “blue”, “border”: “2px solid red” }); });

Output:

In the above example, we have first made the document ready for the web page to be displayed according to the given function in the above code. In this, we are using the .ready() function for making the document ready. Then we specify the parents() function in which “p” the paragraph tag as a selector for this function, which means this function returns all the ancestor elements of the element “P” in the above code. Finally, we are applying the .css() function to properly display each element with described properties. This logic is defined or declared within the script tag, which is within the head tag.

Example #2

Now let us see another example for demonstrating the parents() function in which we are passing the optional parameters as some other HTML elements or selectors.

Code:

.main *{ border: 2px solid red; padding: 10px; margin: 10px; } function parents_func(){ \$(document).ready(function(){ \$(“p”).parents(“li, h2”).css({ “border”: “3px dashed blue”}); }); }

Conclusion – jQuery parents

In this article, we conclude that the parents() function in jQuery is very simple and is used to search or traverse the DOM tree, which consists of various elements to find out the parent element to help any developer to easily correct or upgrade any details. Similar to this parent () function, which returns all its ancestors elements of any selected element, even the parent() function also returns the direct parent element but not all the ancestors elements.

Recommended Articles

This is a guide to jQuery parents. Here we discuss the introduction and how parents() function works with examples, respectively. You may also have a look at the following articles to learn more –

Update the detailed information about What Is Tensorflow Argmax With Examples? on the Daihoichemgio.com website. We hope the article's content will meet your needs, and we will regularly update the information to provide you with the fastest and most accurate information. Have a great day!